工作表上
问题描述:
刷新funtion我有我的工作表工作表上
=LastSheetName()
这工作按计划收集4
Function LastSheetName()
Application.Volatile True
LastSheetName = Worksheets(4).Name
End Function
然后我想表的名称输出单元内同名的函数。
但是,工作表4将被删除,添加并且每次都会有不同的名称。
现在当我添加新工作表4时,我工作表上的公式不会更新。它保持为#VALUE !,显然它正在查看旧的工作表4,然后在新的工作表4到位之前删除工作表。
我需要的东西在我的代码的结束为刷新这个公式=LastSheetName()
“添加表”按钮添加后还增加了新的工作表4.
我曾尝试加入application.Volatile
到年初我功能,如上所述,没有成功。
我曾尝试加入
Worksheets(4).EnableCalculation = False
Worksheets(4).EnableCalculation = True
为了我的代码,没有成功要么结束。
EDITL Sheet 4 not 6对不起
答
做了这样的工作吗?我确切地知道你在试图放置'工作表(4)。名称'的表格,所以我使用了Sheet1。我把它放在'Workbook_NewWorksheet'事件中。
它获取工作簿中的第四个工作表的名称并将其添加到工作表添加到工作簿时Sheet 1的单元格A1。这不关心何时从工作簿中删除工作表。当woksheet被删除工作表Sheet1单元格A1没有更新
Private Sub Workbook_NewSheet(ByVal Sht As Object)
Dim ws As Worksheet
Set ws = ThisWorkbook.Worksheets("Sheet1")
Dim ws4 As Worksheet
Set ws4 = ThisWorkbook.Worksheets(4)
ws.Range("A1").Value = ws4.Name
End Sub
答
要刷新在添加新的工作表你的计算(这个动作在默认情况下不会触发计算),您可以添加该代码模块Thisworkbook
:
Private Sub Workbook_NewSheet(ByVal Sh As Object)
Application.Calculate
End Sub
此外,您还可以让你的函数总是而不是返回最后一个工作表的名称harcoded Worksheets(4)
,即
LastSheetName = ThisWorkbook.Worksheets(ThisWorkbook.Worksheets.Count).Name
“工作表(6)”与您称为“工作表4”的工作有什么关系?目前还不清楚你在说什么。 –
也许[这个答案](http://*.com/questions/27169070/identifying-a-worksheet-other-than-by-its-name/27169154#27169154)及其中的参考是有帮助的 – Ioannis
功能名称的外观比如你正在寻找最后一张表格的名字,而不是你的工作簿中的“表格4”或第6张表格。考虑到这一点,也许尝试'LastSheetName = ThisWorkbook.Worksheets(ThisWorkbook.Worksheets.Count).Name' - 这将不包括图表工作表。只需使用'Sheets'而不是'Worksheets'来包含图表。 –