Application.Caller Problems

M

Matthew Pfluger

I'm trying to use Application.Caller to determine if VBA or a cell has called
my UDF. However, when called from the worksheet in a particular UDF,
Application.Caller = -1711800260 and its TypeName is Double. However, when I
send Application.Caller to an IsRange function, it is passed as a valid range.

When I type in the Immediate window Application.Caller.Columns.Count, it
returns the 'Object Required' error. I don't understand it. Has anyone else
had this problem/

Thanks,
Matthew Pfluger
 
B

Bob Phillips

Maybe

If IsError(Application.Caller) Then
MsgBox "VBA"
Else
MsgBox "Excel"
End If


--
HTH

Bob

(there's no email, no snail mail, but somewhere should be gmail in my addy)
 
M

Matthew Pfluger

Instead of lots of testing and research, I used this workaround:

Dim vCaller as variant
Set vCaller = Application.Caller
if TypeName(vCaller) = "Range" then
' code
end if

However, this doesn't tell me if a function has called a function (has
called a function). I will elaborate in another post since this is a new
issue.

Matthew Pfluger
 
M

Matthew Pfluger

The problem is that Application.Caller is not an error, it is a double value
(unless it is assigned to another variable; see my other post in this thread).

Matthew Pfluger
 

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