【发布时间】:2017-04-20 21:57:55
【问题描述】:
我有一个收集工作表 4 名称的函数
Function LastSheetName()
Application.Volatile True
LastSheetName = Worksheets(4).Name
End Function
然后我想在我的工作表的单元格中输出这个名字
=LastSheetName()
这按预期工作。
但是,工作表 4 将被删除、添加,并且每次都会使用不同的名称。
现在,当我希望添加新的工作表 4 时,工作表上的公式不会更新。它保持为 #VALUE!,显然它正在查看旧的工作表 4,然后在新的工作表 4 到位之前删除了工作表。
我需要在“添加工作表”按钮的代码末尾添加一些内容,该按钮在添加新工作表 4 后刷新此公式 =LastSheetName()。
我尝试将application.Volatile 添加到我的函数的开头,就像上面一样,但没有成功。
我已经尝试添加
Worksheets(4).EnableCalculation = False
Worksheets(4).EnableCalculation = True
到我的代码结束,也没有成功。
EDITL Sheet 4 not 6 抱歉
【问题讨论】:
-
Worksheets(6)与您所说的sheet 4有什么关系?不清楚你在说什么。 -
也许this answer 和其中的参考资料很有帮助
-
函数名称看起来像是在查找最后一张工作表的名称,而不是
sheet 4或工作簿中的第六张工作表。考虑到这一点,不妨试试LastSheetName = ThisWorkbook.Worksheets(ThisWorkbook.Worksheets.Count).Name- 这不包括图表。仅使用Sheets而不是Worksheets来包含图表。 -
另一种方法是清除
Sheet 4上的单元格内容,然后将新数据复制到其中。您不必删除工作表,您的参考资料也不会丢失。