给定字符串时自动填充增量

时间:2015-12-16 14:36:00

标签: excel excel-vba excel-2010 vba

我正在寻找相当长的一段时间并尝试。

我想要做的,基本上是一个自动填充,只有当它在F列上找到值“02:00”时才会递增

1   00:15 
1   00:45 
1   01:00 
1   01:15 
1   01:30 
1   01:45 
1   02:00  -
2   00:15 
2   00:45 
2   01:00 
2   01:15 
2   01:30 
2   01:45 
2   02:00 -
3   00:15 
3   00:45 
3   01:00 
3   01:15 
3   01:30 
3   01:45 
3   02:00 

我的代码几乎是正确的,但总是最后用迭代器的最后一个值填充列。

    'Days :D
    i = 0
    For Each c In Range("F57:F77")
        For Each x In Range("E57:F77")
            x.Value = i 
            If c.Value = "02:00 " Then
                i = i + 1
                If i >= 4 Then
                    'Exits when overlap
                    Exit Sub
                End If
                Debug.Print i
            End If
        Next
    Next

2 个答案:

答案 0 :(得分:2)

您是否考虑过使用COUNTIF这样的原生工作表功能进行批量操作?

With Worksheets("Sheet7")
    With .Range("F57", .Cells(Rows.Count, "F").End(xlUp))
        .Offset(0, -1).Formula = "=COUNTIF(F$57:F57, ""02:00"")+1"
        .Cells = .Value
    End With
End With

答案 1 :(得分:0)

怎么样:

Sub qwerty()
   Dim x As Long, r As Range
   x = 1

   For Each r In Range("F57:F77")
      r.Offset(0, -1).Value = x
      If r.Text = "02:00" Then x = x + 1
   Next r
End Sub

enter image description here