我想要一個消息框來顯示單元格D7中的值何時大於0.消息框應詢問該檢查是否爲低風險項目。如果No
,在單元格D9中輸入0
並轉到D11。如果Yes
,文本框應該顯示輸入一個數字,該數字將被複制到單元格D9。在Excel表格中自動更新數據時,返回正確更新的消息
這聽起來很簡單,我無法弄清楚。
Private Sub Worksheet_Change(ByVal Target As Range)
' Code goes in the Worksheet specific module
Dim rng As Range
Dim Response As Long
Dim Risk As Long
' Set Target Range, i.e. Range("A1, B2, C3"), or Range("A1:B3")
Set rng = Target.Parent.Range("D7")
' Only look at single cell changes
If Target.Count > 1 Then Exit Sub
' Only look at that range
If Intersect(Target, rng) Is Nothing Then Exit Sub
' Action if Condition(s) are met (do your thing here...)
If Target.Value > 0 Then
Response = MsgBox("Is the check a low risk item?", vbQuestion + vbYesNo, "Item Risk Assessment")
Select Case Response
Case 6 ' Yes
Risk = Application.InputBox("Enter a new value", "Value required", Type:=1)
Range("D9").Value = Risk
Case 7 ' No
Range("D9").Value = 0
Range("D11").Select
End Select
End If
End Sub
這隻有當細胞被手動修改,但我試圖設置此所以它給人當電池不手動而是自動更新,因爲它具有計算數據的公式的消息。
驅動同一工作表中的單元格的公式是什麼?如果是這樣,你可以重新配置你的代碼來檢查每次輸入後D7的值,並可能進行檢查,以確保它只檢查特定的單元格條目,以便如果有人隨機將數據輸入到單元格中並且D7 = 0,則它不會不會無意中觸發它? –
嘿斯科特,是的公式是在同一張表。也許我不完全理解你,你可以重新迭代嗎? –
薩姆 - 我指的是迪克在下面的回答的第一部分中提到的內容。如果您知道公式的先例,則可以限制「Worksheet_Change」事件以僅對這些單元格執行檢查。 –