无法选择一系列单元格

时间:2018-03-14 11:08:10

标签: excel excel-vba vba

我是新来的,所以我不确定规则是否合适。我目前正在寻找一个我似乎无法知道问题的代码。

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"不起作用。 请帮助并感谢您的进步。

1 个答案:

答案 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