在工作表上刷新function
我有一个function,收集表4的名称
Function LastSheetName() Application.Volatile True LastSheetName = Worksheets(4).Name End Function
然后我想在我的工作表上的单元格中输出这个名字
=LastSheetName()
这按预期工作。
但是,工作表4将被删除,添加并且每次都会有不同的名称。
现在我的工作表上的公式不会更新,如果我想要添加新工作表4。 它保持为#VALUE !,显然它正在查看旧的纸张4,然后在新的纸张4就位之前,纸张被删除。
我需要添加一些东西来添加我的代码为“添加工作表”button,刷新这个公式=LastSheetName()
后添加新工作表4。
我已经尝试添加application.Volatile
到我的函数的开始,像上面一样,没有成功。
我曾尝试添加
Worksheets(4).EnableCalculation = False Worksheets(4).EnableCalculation = True
到我的代码结束,也没有成功。
EDITL表4不是6抱歉
添加新工作表时,要刷新计算(默认情况下此操作不会触发计算),您可以将其添加到代码模块Thisworkbook
:
Private Sub Workbook_NewSheet(ByVal Sh As Object) Application.Calculate End Sub
此外,你可以让你的函数总是返回最后一个工作表的名字,而不是一个合并的Worksheets(4)
,即
LastSheetName = ThisWorkbook.Worksheets(ThisWorkbook.Worksheets.Count).Name
有这样的工作吗? 我确切地知道你在“Sheetheet(4).Name”上放置了什么样的表格,所以我使用了Sheet1。 我把这个放在“Workbook_NewWorksheet”事件中。
它获取工作簿中的第四个工作表的名称,并将其添加到Sheet1的单元格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