我有一个函数来返回工作簿中第7张表的名称:
Function FirstBBSName()
Application.Volitile True
FirstBBSName = Worksheets(7).Name
End Function
然后在表格上我会这样说:
="'"&FirstBBSName()&"'!"
然后我可以在其他INDRECT
公式中使用它,什么不可以。
我需要上面的内容,因为第7张可能会或可能不会出现,并且每次都可能有不同的名称。
它有效,但我的问题是它返回了由于Application.Volitile
和Worksheets(7).Name
而打开并被更改的任何工作簿的第7张表的名称。这不是我打算做的。它应该只返回代码所在工作簿的第7张表的名称。
我试图改变这样做的功能,但是失败了,所以我把它归还给上面的代码,确切地说是以前的代码。现在,当我尝试获取输出时,我的工作表上只收到#VALUE
错误。
为什么会这样?
(是的,此时工作表已存在,当前工作簿上有9张。)
答案 0 :(得分:3)
首先,它是Volatile
,而不是Volitile
。 :)
其次,您需要指定ThisWorkbook
作为包含工作簿:
Function FirstBBSName()
Application.Volatile True
FirstBBSName = ThisWorkbook.Worksheets(7).Name
End Function