excel - 合并多个 Worksheet_SelectionChange

标签 excel vba

我运行一个 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

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

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

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

我感谢您的帮助。
谢谢你。

最佳答案

您可以在更改事件中使用开关 (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


我添加了 Exit Sub检查每个列的行是否 > 27,因为您的范围是 1:27。这取代了 Intersect()查看。

您根据 Target.Column 执行相同的操作,因此这是唯一需要验证和利用的其他参数。

关于excel - 合并多个 Worksheet_SelectionChange,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60061467/

相关文章:

c++ - 由 C 编译为 DLL 的随机函数无法正常工作

excel - Excel 数据透视表中按 "Grand Total"列排序?

c# - 使用 C# 检查 Excel 工作簿是否具有宏

validation - Excel 2010 - VBA/公式 - 无法找到范围名称的定义方式

json - VBA 解析 JSON 数据

vba - 如何有效地处理错误以防止产生误导性的结果?

string - 尝试仅显示一定数量的数字

C#/Excel : Convert Excel Range to Array with Correct Data Type

excel - 在 Excel 中比较两个具有相同行但顺序不完全相同的不同表

vba - Excel VBA将参数传递给OLEDBConnection