View Single Post
  #2   Report Post  
Posted to microsoft.public.excel.programming
Juan Pablo González Juan Pablo González is offline
external usenet poster
 
Posts: 226
Default macro function is too slow!

Create an XLL AddIn, which is written in C.

--
Regards,

Juan Pablo González

"Tommy Brown" wrote in message
...
I am using many macro functions.
But it seems that they are quite slower than the built-in functions.
For example, the macro I wrote as below is very similar with the built-in

function SUMPRODUCT(), but the speed is very different.
I guess, the reason may be due to the fact that the built-in functions

exist as binary codes or as a part of the EXCEL program, while macro
functions should be interpreted line-by-line all the time the macro
functions run.

If so, is there any way to make macro functions as a par of excel?
--------------------------------------------------------------------------

-------------------------
Public Function MySumProduct(targets As Range, weights As Range) As Double

n = targets.Rows.Count
MySumProduct = 0
For i = 1 To n
If Application.WorksheetFunction.IsNumber(targets(i, 1)) And _
Application.WorksheetFunction.IsNumber(weights(i, 1)) Then
MySumProduct = MySumProduct + targets(i, 1).Value * weights(i,

1).Value
Else
MySumProduct = MySumProduct
End If

Next i


End Function