如何在更改命名范围(单元格)时调用宏

时间:2014-04-01 17:19:11

标签: excel vba excel-vba named-ranges

我正在尝试调用一个名为" RE_environmental"当细胞名为" RE_1"被改变(即它们在单元格中标记X)。我已经尝试了几种不同的代码变体,包括这两种,并且没有发生任何事情:

[如果我使用确切的单元格位置而不是指定的单元格,则第一个代码可以正常工作。 - > $ E $ 61]

     Private Sub Worksheet_Change(ByVal Target As Range)

     If Target.Address = "RE_1" Then

     Call RE_environmental

     End If

     End Sub

AND

     Private Sub Worksheet_Change(ByVal Target As Range)

     If Range("Name").Select = "RE_1" Then

     Call RE_environmental

     End If

     End Sub

- 感谢高级版,如果您需要更多信息,请与我们联系。

2 个答案:

答案 0 :(得分:1)

如果Target始终是单格范围,则可以使用此单位:

If Target.Address = Range("RE_1").Address Then
    Call RE_environmental
End If

如果Target可以是多单元范围,请使用此单词:

If Not Intersect(Target, Range("RE_1")) Is Nothing Then
    Call RE_environmental
End If

答案 1 :(得分:1)

使用你的第一个答案,但做出这个小改动:

Private Sub Worksheet_Change(ByVal Target As Range)

    If Target.Address = Range("RE_1").Address Then

        Call RE_environmental

    End If

End Sub

简单的语法错误!

编辑:要在单元格为空时停止RE_environmental运行,只要RE_environmental正在清空,就将RE_environmental中的代码放入do-while(不是isempty(Range(" RE_1")))中#34; RE_1&#34 ;.在RE_environmental运行时,用户无法编辑单元格。