我在运行一个 Private Sub Worksheet_SelectionChange 时没有问题,但是当我添加多个 Worksheet_SelectionChange 事件时,它没有运行。后来,我才知道不可能在同一工作表中运行不同的工作表选择更改事件。
根据我的理解,我有四个不同的 Private Sub Worksheet_SelectionChange 事件,试图在各种站点的帮助下将它们合并,但没有一个对我有用。我能得到一些帮助吗,1。
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim cells1 As Range
Set cells1 = ActiveSheet.Range("B1:B27")
If Not (Intersect(Target, cells1) Is Nothing) Then
ActiveSheet.Range("B30").Value = Target.Value
End If
End Sub
Run Code Online (Sandbox Code Playgroud)
2.
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim cells2 As Range
Set cells2 = ActiveSheet.Range("C1:C27")
If Not (Intersect(Target, cells2) Is Nothing) Then
ActiveSheet.Range("C30").Value = Target.Value
End If
End Sub
Run Code Online (Sandbox Code Playgroud)
3.
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim cells3 As Range
Set cells3 = ActiveSheet.Range("S1:S27")
If Not (Intersect(Target, cells3) Is Nothing) Then
ActiveSheet.Range("S30").Value = Target.Value
End If
End Sub
Run Code Online (Sandbox Code Playgroud)
4.
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim cells4 As Range
Set cells4 = ActiveSheet.Range("T1:T27")
If Not (Intersect(Target, cells4) Is Nothing) Then
ActiveSheet.Range("T30").Value = Target.Value
End If
End Sub
Run Code Online (Sandbox Code Playgroud)
我感谢您的帮助。谢谢你。
您可以select case在更改事件中使用开关 ( ) 来允许将发生的选项。
小样:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Row > 27 then Exit Sub
Select Case Target.Column
Case 2, 3, 19, 20
Cells(30,Target.Column).Value = Target.Value
End Select
End Sub
Run Code Online (Sandbox Code Playgroud)
Exit Sub对于每一列,我添加了行 > 27的检查,因为您的范围是 1:27。这将取代Intersect()支票。
您根据 执行相同的操作Target.Column,因此这是唯一要验证和利用的其他参数。