我有一个包含大量工作表的工作簿,并希望在工作表触发事件时运行以下代码...除了我不想将代码复制到所有工作表
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$B$55" Then
Target.Worksheet.Range(Range("A" & Left(Target.Text, 2)), Range("AE" & Left(Target.Text, 2))).Select
End If
End Sub
所以我在ThisWorkbook
类模块中尝试了下面的内容,但我一定是弄错了,因为它没有触发事件
Dim WithEvents xSheet As Worksheet
Private Sub xSheet_Change(ByVal Target As Range)
If Target.Address = "$B$55" Then
Target.Worksheet.Range(Range("A" & Left(Target.Text, 2)), Range("AE" & Left(Target.Text, 2))).Select
End If
End Sub
这样做的正确方法是什么?
答案 0 :(得分:1)
假设您希望上述内容针对所有工作表而非特定工作表运行,您可以尝试使用Workbook_SheetChange
中的ThisWorkbook
事件。 E.g。
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
If Target.Address = "$B$55" Then
Sh.Range(Range("A" & Left(Target.Text, 2)), Range("AE" & Left(Target.Text, 2))).Select
End If
End Sub