创建 Excel 功能以返回工作表的名称



我正在尝试创建一个函数来返回函数所在的工作表的名称。但是,下面的代码返回活动工作表,而不是函数所在的静态工作表。 我以前有一个标准的 excel 公式来给我工作表名称,如果 vba 无法返回函数所在的工作表,我可以回到这个公式?

工作表名称"TTD">

卓越公式 +文件表名称(C1(

=TTD

VBA 函数

Function FileSheetName(aCellLocation)
Application.Volatile
aCellLocation = aCellLocation.Address
Set aCellLocation = Range(aCellLocation)
aSheetName = aCellLocation.Parent.Name
FileSheetName = aSheetName
End Function

你可以使用 application.caller: 无需使用范围,因为 range.parent.name 将给出范围的工作表名称,而不是函数所在的位置(可能不同(

Function FileSheetName2()
FileSheetName2 = Application.Caller.Parent.Name
End Function

你的函数参数已经是一个范围 - 不需要获取地址,然后从中创建一个范围:

Function FileSheetName(aCellLocation As Range)
Application.Volatile 
FileSheetName = aCellLocation.Parent.Name
End Function

这里:

Set aCellLocation = Range(aCellLocation)

Range的范围默认为活动工作表:这就是为什么当包含公式的工作表不是所选工作表时,结果是错误的。

最新更新