自动更新工作表命名宏

时间:2017-06-15 14:19:35

标签: excel-vba autocomplete vba excel

我找到了一个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

1 个答案:

答案 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

(每张表中的一个宏)