如何使用VBA遍历所有其他列

时间:2019-01-28 21:17:01

标签: excel vba

因此,我正在尝试比较图中的日期。我想比较单元格1和2,如果日期相同,则移至3和4,并进行相同的比较,然后移至5和6,依此类推。如果日期不同,我想在计数器上加1。然后,在每一行的末尾,我需要使用当前计数器值在当前行末尾的单元格中填充0,然后重置计数器并移至下一行,依此类推。因此带圆圈的计数器应读为1,因为存在一对不同的日期。到目前为止,我已附上代码。目前,它告诉我Set CompD1的“ Object required”。这是新手,因此感谢您的帮助。 enter image description here

Dim i As Integer
Dim j As Integer
Dim AdjPln As Integer
Dim CompD1 As Range
Dim CompD2 As Range
Dim cRow As Integer

For i = 0 To 49

AdjPln = 0

cRow = i + 13

    For j = 0 To 9
    Set CompD1 = Cells(cRow, j + 5).value
    Set CompD2 = Cells(cRow, j + 6).value
        If CompD1 = CompD2 Then
            j = j + 2
        Else
            AdjPln = AdjPln + 1
            j = j + 2
        End If

    Next j

Cells(cRow, 24) = AdjPln

Stop
Next i

2 个答案:

答案 0 :(得分:1)

我认为您的j循环是您尝试使用公式将值更改为2而不是1时发生的问题。当您以非1的增量进行循环时,可以使用{{ 1}}选项。在您的情况下,您想将Step循环2,所以j。如果有用的话,您也可以做负面的事情。

看看是否可行:

Step 2

答案 1 :(得分:0)

这似乎可以用一个简单的公式完成。将其放在X13中并向下拖动。

=SUMPRODUCT((E13:U13<>F13:V13)*(E13:U13<>"")*(F13:V13<>"")*ISODD(COLUMN(E13:U13)))