2014-04-01 71 views
0

我試圖調用名爲「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 

 Private Sub Worksheet_Change(ByVal Target As Range) 

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

    Call RE_environmental 

    End If 

    End Sub 

--Thanks在高級和請讓我知道如果你需要更多的信息。

回答

0

使用你的第一個答案,但讓這個小改:

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_1」,一旦單元格爲空時停止RE_environmental運行,將代碼從RE_environmental放入do-while(而不是空格(範圍(「RE_1」))))。 RE_environmental正在運行時,用戶將無法編輯單元格。

+0

OMG它的工作。非常感謝你對你的專業知識:) –

+0

有沒有辦法說「結束如果小區再次成爲空」? –

+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 
+0

OMG它的工作。非常感謝你的專業知識:) –

+0

有沒有辦法說「結束如果細胞再次變空」? –

+0

不確定我理解你有關'結束如果細胞再次變空'?又是什麼意思?當它第一次變空時?澄清請 –