如果与另一个范围相交,则停止触发事件 SelectionChange(已使用相交)?
Posted
技术标签:
【中文标题】如果与另一个范围相交,则停止触发事件 SelectionChange(已使用相交)?【英文标题】:Stop firing event SelectionChange (Intersect already used) if it intersects with another range 【发布时间】:2022-01-23 22:45:46 【问题描述】:如果在列 M 中选择了任何单元格,我将使用以下代码运行宏 Calendar_Advanced
。问题: 如果我选择了列中的任何单元格与 Range M:M 同时,事件也会触发,就像我选择所有行一样。
Private Sub worksheet_SelectionChange(ByVal Target As Excel.Range)
Dim LastRow As Long: LastRow = ActiveSheet.Cells(Rows.Count, "B").End(xlUp).Row
If Not Intersect(Target, Range("M3:M" & LastRow)) Is Nothing Then
Call Calendar_Advanced
End If
End Sub
我尝试添加到 if 条件 And Selection.Cells.Count = 1
它有效,但防止多选 (Calendar_Advanced
) 在 M 列上运行。
一如既往,任何帮助将不胜感激
【问题讨论】:
【参考方案1】:计算列以确保它只是 M。
Private Sub worksheet_SelectionChange(ByVal Target As Excel.Range)
Dim LastRow As Long: LastRow = ActiveSheet.Cells(Rows.Count, "B").End(xlUp).Row
If Not Intersect(Target, Range("M3:M" & LastRow)) Is Nothing Then
If Target.Columns.Count = 1 Then
Calendar_Advanced
End If
End If
End Sub
【讨论】:
非常感谢,它有效以上是关于如果与另一个范围相交,则停止触发事件 SelectionChange(已使用相交)?的主要内容,如果未能解决你的问题,请参考以下文章