返回工作表名称不再有效的函数

时间:2017-05-24 08:00:52

标签: excel-vba vba excel

我有一个函数来返回工作簿中第7张表的名称:

Function FirstBBSName()

Application.Volitile True
FirstBBSName = Worksheets(7).Name

End Function

然后在表格上我会这样说:

="'"&FirstBBSName()&"'!"

然后我可以在其他INDRECT公式中使用它,什么不可以。 我需要上面的内容,因为第7张可能会或可能不会出现,并且每次都可能有不同的名称。

它有效,但我的问题是它返回了由于Application.VolitileWorksheets(7).Name而打开并被更改的任何工作簿的第7张表的名称。这不是我打算做的。它应该只返回代码所在工作簿的第7张表的名称。

我试图改变这样做的功能,但是失败了,所以我把它归还给上面的代码,确切地说是以前的代码。现在,当我尝试获取输出时,我的工作表上只收到#VALUE错误。

为什么会这样?

(是的,此时工作表已存在,当前工作簿上有9张。)

1 个答案:

答案 0 :(得分:3)

首先,它是Volatile,而不是Volitile。 :)

其次,您需要指定ThisWorkbook作为包含工作簿:

Function FirstBBSName()

Application.Volatile True
FirstBBSName = ThisWorkbook.Worksheets(7).Name

End Function
相关问题