我试图根据另一个工作表中的单元格值“ 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 回答
按照要求
因为您的代码的范围是特定的工作表更改 . 因此,如果您在Sheet1中有此代码,则只有在sheet1中进行更改时,此代码才会生效 . 在所有工作表后面添加此代码,或者只使用工作簿级别工作表更改事件Private Sub Workbook_SheetChange(ByVal Sh As Object,ByVal Target As Range),您可以在工作簿对象中访问它 .
因此,您有大约20张左右的纸张,因此在进行更改时单击每张纸是很费力的 . 为什么不循环遍历所有工作表来刷新更改? :)
就像是:
HTH;)