我想出了一个有用的技巧,我使用以下公式创建一个引用当前工作表的命名范围:
=RIGHT(CELL("filename",INDIRECT("A1")), LEN(CELL("filename",INDIRECT("A1"))) - FIND("]",CELL("filename",INDIRECT("A1"))))&T(NOW())
只有INDIRECT
才能阻止Excel转换A1
- > Sheet1!A1
。这很有效,直到我需要从VBA调用它来评估它(确实发生了)。
任何人都可以告诉我如何(1)在VBA中评估具有此公式的名称,或者(2)如何在公式中获得表单非特定的引用。我宁愿不使用VBA,因为它将被评估~12000次,而且这可能会很慢,但如果需要,它可能还可以。但是,请记住,它计算的表格不太可能是ActiveSheet
,因此VBA中Range()
函数的上下文有点棘手 - 因此我要问的是第一名。
答案 0 :(得分:1)
一种可能的方法:使用一个简单的UDF,它只返回它所调用的工作表的名称。
例如:
Function SheetName()
SheetName = Application.Caller.Parent.Name
End Function