我是新来的,所以我不确定规则是否合适。我目前正在寻找一个我似乎无法知道问题的代码。
Private Sub Worksheet_Change(ByVal Target As Range)
If Format(Range("H4").Value, "HH:MM:SS") = "00:15:00" Then
MsgBox "Block 3 ends in 15 mins"
End If
End Sub
代码能够处理单个单元格,但是当我更改单元格时,#4; H4"到" H2:H7"不起作用。 请帮助并感谢您的进步。
答案 0 :(得分:1)
当然,多个单元id field1
==== ======
1000 foo1
1001 foo2
1002 foo3
没有一个.Value
,但有多个值。
因此,您需要在循环中自行测试每个值。您需要确定所有单元格是否需要满足If标准或仅满足其中一个。
当H2:H7
范围内的值为H2:H7
时,这是按摩盒的示例。
请注意,这会在任何单元格的每次更改时运行。
00:15:00
如果您希望仅在Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
Dim c As Range
For Each c In Range("H2:H7")
If Format$(c.Value, "HH:MM:SS") = "00:15:00" Then
MsgBox "Block 3 ends in 15 mins"
End If
Next c
End Sub
中的单元格更改时运行,请使用
Range("H2:H7")
如果您只想测试更改的单元格(不是整个范围),请使用
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("H2:H7")) Is Nothing Then
Dim c As Range
For Each c In Range("H2:H7")
If Format$(c.Value, "HH:MM:SS") = "00:15:00" Then
MsgBox "Block 3 ends in 15 mins"
End If
Next c
End If
End Sub