我找到了一个VBA代码,允许我根据单元格值更改工作表名称。那个单元格值不断变化,但我没有更新48张,除非我点击该表格。每次细胞值变化时,如何让marcos运行?
以下是我正在使用的代码。
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Set Target = Range("DK5")
If Target = "" Then Exit Sub
Application.ActiveSheet.Name = VBA.Left(Target, 31)
Exit Sub
End Sub
答案 0 :(得分:1)
如果您在手动更改该工作表中单元格 DK5 的内容之前始终激活工作表,请在每个工作表中输入您想要此功能的此事件宏:
Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, Range("DK5")) Is Nothing Then Exit Sub
Application.EnableEvents = False
ActiveSheet.Name = Range("DK5").Text
Application.EnableEvents = True
End Sub
如果单元格 DK5 包含公式,则需要使用其他事件宏。
修改#1:强>
如果 DK5 单元格包含公式而不是类型常量,则改为使用这些事件宏:
Private Sub Worksheet_Calculate()
Application.EnableEvents = False
Me.Name = Me.Range("Dk5").Value
Application.EnableEvents = True
End Sub
(每张表中的一个宏)