传递 public 范围变量进行相交

Passing public Range variable to intersect

我在我的工作表中创建了一个 public Range 对象并在其中对其进行了初始化 Worksheet_Activate()。之后我试图在 Worksheet_Change(ByVal Target As Range) 范围内相交,但我不知道该怎么做。也许我做的事情完全错了,或者可能有一种简单的方法可以解决它。

Public myRange As Range

Private Sub Worksheet_Activate()  
Set myRange = Worksheets("Sheet1").Range("D6:D8")
End Sub

Private Sub Worksheet_Change(ByVal Target As Range)

If Intersect(Target,myRange) Is Nothing Then
"Do Something"
Else
"Do Something Differenz"
End If

End Sub

你必须更换

If Intersect(Target, myRange) Is Nothing Then

If Not Intersect(Target, myRange) Is Nothing Then

如果您打算在已更改的单元格位于内部时“做某事”myRange...这不正是您想要的吗?

MyRange只有在激活sheet1时才会设置,所以如果在第一次打开文件时选择了sheet1,则不会设置myRange。 相反,最好在 change_event.

中设置一个语法来设置 myRange
Public myRange As Range

Private Sub Worksheet_Change(ByVal Target As Range)
    Set myRange = Worksheets("Sheet1").Range("D6:D8")
    If Intersect(Target, myRange) Is Nothing Then
        MsgBox "Nothing"
    Else
        MsgBox "not Nothing"
    End If

End Sub