Application.Evaluate question

L

lcsma

It seems like Application.Evaluate always evaluates the command twice.
I have a custom addin and want to write a macro to evaluate an addin
command. By setting a break point at my addin function, I can see that when
Application.Evaluate is evoked, it called the addin function twice. Is there
any way to disable this behaviour or is there any alternative to
application.evaluate that would only run the command once?

I am using excel 2002 SP3.

Thanks.

(PS. I cannot put the command in a cell and calculate because the
addin-function returns a variable-size array and I want to get the returned
array and do some additional processing on it.)
 
B

Bernie Deitrick

Why not just set the array equal to the return of the function? You may need
to set a reference to the project, but this should work:

Sub TestArrayReturn()
Dim myArr As Variant
Dim i As Integer
myArr = TestFunction
For i = LBound(myArr) To UBound(myArr)
MsgBox myArr(i)
Next i
End Sub

Function TestFunction() As Variant
TestFunction = Array(1, 2, 3)
End Function


HTH,
Bernie
MS Excel MVP
 
L

lcsma

Thanks. I will try this approach. I had difficulty setting reference to the
add-in as it didn't show up in the Tools->References list, but I guess that's
a separate problem.

Out of curiosity, Is this behavior a well known feature of
Application.Evaluate? What's the reason that it needs to evaluate twice?

TIA
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top