Vba 在工作表上刷新函数
我有一个函数可以收集第4页的名称Vba 在工作表上刷新函数,vba,excel,Vba,Excel,我有一个函数可以收集第4页的名称 Function LastSheetName() Application.Volatile True LastSheetName = Worksheets(4).Name End Function 然后我想在工作表的单元格中输出这个名称 =LastSheetName() 这正是我们想要的 但是,第4页将被删除、添加,并且每次都有不同的名称 现在,我的工作表上的公式不会像我希望的那样在添加新的工作表4时更新。它保持为#值!,很明显,它正在查看旧的第4页,然
Function LastSheetName()
Application.Volatile True
LastSheetName = Worksheets(4).Name
End Function
然后我想在工作表的单元格中输出这个名称
=LastSheetName()
这正是我们想要的
但是,第4页将被删除、添加,并且每次都有不同的名称
现在,我的工作表上的公式不会像我希望的那样在添加新的工作表4时更新。它保持为#值!,很明显,它正在查看旧的第4页,然后在新的第4页就位之前,该页被删除
我需要在“添加工作表”按钮的代码末尾添加一些内容,该按钮在添加新工作表4后刷新此公式=LastSheetName()
我尝试将application.Volatile
添加到函数的开头,如上所述,但没有成功
我试着添加
Worksheets(4).EnableCalculation = False
Worksheets(4).EnableCalculation = True
在我的代码末尾,也没有成功
EDITL Sheet 4不是6对不起这样行吗?我完全确定你想在哪张纸上写“工作表(4).Name”,所以我用了Sheet1。我把它放在“工作簿\新工作表”事件中 它获取工作簿中第四个工作表的名称,并在将工作表添加到工作簿时将其添加到Sheet1的单元格A1中。从工作簿中删除工作表时,这不起作用。删除工作表时,不会更新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的工作表(4)
,即
LastSheetName = ThisWorkbook.Worksheets(ThisWorkbook.Worksheets.Count).Name
工作表(6)
与您所称的工作表4有什么关系?不清楚你在说什么。也许其中的引用是有用的。函数名看起来像是在查找最后一页的名称,而不是工作簿中的第4页或第6页。考虑到这一点,可以尝试使用LastSheetName=thiswoolk.Worksheets(thiswoolk.Worksheets.Count)。Name
-这不包括图表表。仅使用工作表
而不是工作表
来包含图表工作表。另一种方法是清除工作表4
上单元格的内容,然后将新数据复制到其中。您不必删除工作表,您的参考资料也不会丢失。