比较特定模式VBA中的两个单元格

时间:2018-01-22 12:59:32

标签: vba excel-vba loops excel-formula compare

我正在尝试使用VBA以某种模式比较两个excel的单元格。该表由空行分隔。模式是: 我正在看A列。如果单元格A1是空的,我正在移动到下一个。如果单元格A2不为空,那么我正在向B2,B3,B4等编译$ A2 $,直到我击中空单元格。如果是这样,那么它移动到下一个(不是空的),即$ A6 $,我将继续竞争B6,B7,...... 为了定义循环的范围(范围),我有以下内容:

LastRow1 = This.Sheets("List1").Range("A1048576").End(xlUp).Row

哪种循环适合这种模式? 非常感谢提前。

1 个答案:

答案 0 :(得分:0)

如果我误解了你,请纠正我: 您想循环遍历A列中的每一行直到最后一行。 每次在A列中有值时,都希望将其与B列中的数据进行比较。

也许是这样的:

LastRow1 = Range("A" & Rows.Count).End(xlUp).Row 'Determining the last row in column A
LastRow2 = Range("B" & Rows.Count).End(xlUp).Row 'Determining the last row in column B
For i = 2 to LastRow1 'Looping through every row
    If Cells(i, "A") <> "" Then
         For j = i to LastRow2 'looping through each row in column B from the same line as i in column A at that moment, column A6 f.e. will never compare with a value in B2:B5 for example, but only B6 till lastrow in column B
             If Cells(i, "A") = Cells(i, "B") Then
                 <<do something if the value is found>>
             End If
         Next j
    End If
Next i