Application.Caller对象所需的错误
如何从函数获取当前工作表(非activesheet)名称? “当前页”是指函数放置和调用的表名。
我想要那样
Function MySheet() MySheet = Application.Caller.Worksheet.Name MsgBox MySheet End Function
但我得到错误对象所需。
你将不得不小心你如何调用这个函数。 你已经提供了很less的细节,你想要做什么。
Function MySheet() Select Case TypeName(Application.Caller) Case "Range" MySheet = Application.Caller.Parent.Name Case "String" MySheet = Application.Caller Case "Error" MySheet = "Error" Case Else MySheet = "unknown" End Select End Function
上面至less试图对Application.Caller
在使用它来确定关联的工作表对象的名称之前进行某种确定。
您可以在Application.Caller属性(Excel)中阅读更多信息。
你在找Me
吗?
MsgBox Me.Name
这是你所希望的,如果你通过“function放置的表格名称”来表示放置function代码的表格模块。 ( 文档 )。
但是,如果您的意思是,包含用于调用用户定义函数的单元格的工作表,则可以使用:
MsgBox Application.Caller.Parent.Name
Application.Caller
返回一个指向单元格的Range
对象; 这个范围的Parent
就是表单。