我创建了一个简单的代码,用于将活动单元格地址放入另一个单元格中。
`Sheets("ESM").Range("K16").Value = ActiveCell.Address`
我想限制使用此代码的单元格(例如N5:AR7)但不能完全解决。 我假设我需要以某种方式使用“Dim MyRange”或类似的东西来定义范围。
有人会介意协助吗?
答案 0 :(得分:0)
将代码包装成条件:
If Not Intersect(ActiveCell, Range("N5:AR7")) Is Nothing Then
Sheets("ESM").Range("K16").Value = ActiveCell.Address
End If
答案 1 :(得分:0)
Intersect()
方法将返回一个Range对象,该对象表示两个或更多范围的交集。
要解释这一点,只需将下面的宏复制并粘贴到任何标准模块中即可。然后,确保活动单元格在N5:AR7
内,并运行代码。它将返回活动单元格的地址。
Sub TryMe()
MsgBox Intersect(ActiveCell, Range("N5:AR7")).Address
End Sub
如果活动单元格不在N5:AR7
范围内,则会发生运行时错误。
Nothing 关键字主要用于将对象变量恢复为默认值Nothing。
如果活动单元格不相交N5:AR7
,我们可以使用如下所示的代码防止运行时错误:
Sub TryMeAgain()
If Intersect(ActiveCell, Range("N5:AR7")) Is Nothing Then
MsgBox "The active cell does NOT Intersect A1:A10"
Else
MsgBox "The active cell does Intersect A1:A10"
End If
End Sub