我正在尝试根据另一个工作表中的单元格值“标题”工作表动态更改工作表标记名称。当我从同一张纸进行更新时,动态更改效果很好,并且在更改单元格值后按下输入时更改。但是当参考单元格位于另一个工作表中时,在按下输入后,对于工作表标记没有任何更改,直到我主动访问要更新的工作表并单击工作表。无论如何都要绕过这个?我有大约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
我的另一个选择是添加更新按钮来执行更改,但如果可能的话我想避免这种情况。
任何建议都将不胜感激!
答案 0 :(得分:0)
所以你有大约20张左右的纸张,因此在进行更改时点击每张纸是很费力的。为什么不循环遍历所有纸张来刷新更改? :)
类似的东西:
Dim sht As Worksheet
Application.ScreenUpdating = False
For Each sht In Worksheets
sht.Activate
Next
Application.ScreenUpdating = True
HTH;)
答案 1 :(得分:0)
根据要求
因为您的代码的范围是特定工作表更改的范围。因此,如果您在Sheet1中有此代码,则只有在sheet1中进行更改时,此代码才会生效。在所有工作表后面添加此代码,或者只使用工作簿级别工作表更改事件Private Sub Workbook_SheetChange(ByVal Sh As Object,ByVal Target As Range),您可以在工作簿对象中访问它。