ExcelBanter

ExcelBanter (https://www.excelbanter.com/)
-   Excel Programming (https://www.excelbanter.com/excel-programming/)
-   -   Application.Caller Problems (https://www.excelbanter.com/excel-programming/398168-application-caller-problems.html)

Matthew Pfluger

Application.Caller Problems
 
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

Bob Phillips

Application.Caller Problems
 
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)

"Matthew Pfluger" wrote in
message ...
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




Matthew Pfluger

Application.Caller Problems
 
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


"Matthew Pfluger" wrote:

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


Matthew Pfluger

Application.Caller Problems
 
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

"Bob Phillips" wrote:

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)

"Matthew Pfluger" wrote in
message ...
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






All times are GMT +1. The time now is 10:16 PM.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
ExcelBanter.com