![]() |
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 |
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 |
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 |
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