首页 文章

Excel:根据另一个工作表中的单元格值动态更改工作表标签

提问于
浏览
0

我试图根据另一个工作表中的单元格值“ Headers ”工作表动态更改工作表标签名称 . 当我从同一张纸进行更新时,动态更改效果很好,并且在更改单元格值后按下输入时更改 . 但是当参考单元格位于另一个工作表中时,在按下输入后,工作表标签没有变化,直到我主动访问要更新的工作表并单击工作表 . 无论如何都要绕过这个?我有大约20张左右的纸张,因此在进行更改时单击每张纸是很费力的 . 这是我的代码:

Private Sub Worksheet_SelectionChange(ByVal Target As Excel.Range)
    Set Target = Worksheet("Title").Range("A1")
    If Target = "" Then Exit Sub
    On Error GoTo Badname
    ActiveSheet.Name = Left(Target, 31)
    Exit Sub
Badname:
    MsgBox "Please revise the entry in A1." & Chr(13) _
    & "It appears to contain one or more " & Chr(13) _
    & "illegal characters." & Chr(13)
    Range("A1").Activate
End Sub

我的另一个选择是添加一个更新按钮来执行更改,但如果可能的话我想避免这种情况 .

任何建议,将不胜感激!

2 回答

  • 0

    按照要求

    因为您的代码的范围是特定的工作表更改 . 因此,如果您在Sheet1中有此代码,则只有在sheet1中进行更改时,此代码才会生效 . 在所有工作表后面添加此代码,或者只使用工作簿级别工作表更改事件Private Sub Workbook_SheetChange(ByVal Sh As Object,ByVal Target As Range),您可以在工作簿对象中访问它 .

  • 0

    因此,您有大约20张左右的纸张,因此在进行更改时单击每张纸是很费力的 . 为什么不循环遍历所有工作表来刷新更改? :)

    就像是:

    Dim sht As Worksheet
    Application.ScreenUpdating = False
    For Each sht In Worksheets
      sht.Activate
    Next
    Application.ScreenUpdating = True
    

    HTH;)

相关问题