传递 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
我在我的工作表中创建了一个 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.
中设置一个语法来设置 myRangePublic 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