2015-04-22 134 views
1

我試圖獲得一個相應的單元格,當該行中的單元格擊中某個值時,將被輸入到msgBox中。例如,如果C1> 3.45,我想要一個消息框,指出「範圍(」A1「)+」的值太高。「這將擴展到整個陣列。如何在另一個盒子在Excel中具有特定值(VBA)時引用msgBox中的單元格。

我一直在試圖修改簡單的腳本。

Private Sub Worksheet_Change(ByVal Target As Range) 
    Set Target = Me.Range("C1:C100") 
    If Target.Value > 3.45 Then 
     MsgBox "The Value at "+ Range("A1:A100") + " exceeded limit." 
    End If 
End Sub 

我知道我錯過了一些東西,但我無法弄清楚如何關聯數字並讓它們返回。我知道我可以用匹配和利用一般形式

Set targetRange = [range] 
targetRange.FormulaArray = "=[insert array formula]" 

但我似乎無法讓他們正常工作。

非常感謝您的幫助。

+0

在我看來,你想要做的是循環遍歷所有單元格的範圍內,並彈出一個'MSGBOX '如果其中一個數字超過閾值? –

+0

這是正確的。 –

+0

如果一旦發現閾值,它將繼續通過細胞一次,那也是優選的。如果它找到一個,我不希望它停止。 –

回答

1

爲什麼不嘗試像

for i = 1 to 100 
    if cells(i, 3) > 3.45 then 
    msgbox "Cell C" & i & " is too high. The corresponding time stamp is " & cells(i, 1) & "." 
    end if 
next i 

這每一次在該範圍內的單元格是「過高」會提醒用戶。

+0

我會嘗試,但是你能否解釋一些內容,以便我有更深入的瞭解,而不僅僅是複製/粘貼。 當你利用細胞(我,3),這是否自動循環?基本上使用我作爲一個管家? (道歉,如果這是一個愚蠢的問題,我還沒有在VBA工作很長時間) –

+0

它將循環通過C1到C100單元格。 C是第3列,因此3.我指的是行號1至100.根本不是一個愚蠢的問題。保持學習! –

+0

另外,引用一個單獨的單元格要複雜得多嗎?我不想具體引用單元格的原因是,單元格按日期/時間分類,該日期/時間位於列A中,而數據本身位於列C中。能夠看到時間戳記最初擺脫了更多搜索。 –

0

沒有循環單排(爲了好玩! - 觸摸更難理解)

MsgBox Join(Filter(Application.Transpose(Application.Evaluate("=IF(ISNUMBER(C1:C100),IF(C1:C100>3.45,""C""& ROW(C1:C100),""x""),""x"")")), "x", False), ",") 
相關問題