首页 > 解决方案 > 使用嵌套的 for 循环读取两列

问题描述

我需要读取两列,这就像一个 excel 对账,我需要捕获 B 列和 W 列,然后 B 列检查 1 条记录并匹配 W 列中的这条记录,如果 B 列记录和 W 列记录匹配,那么它需要移动新的工作表。任何人都可以检查或建议我如何执行此嵌套 for 循环。以及如何为嵌套的 For 循环捕获 B & W 列。

  For i = 2 To 20

   Rows.Cells(i, 2).Select
   Rows.Cells(i, 2).Select
   Rows.Cells(j, 31).Select
      Next j
   Next i

标签: excelvbanested-loops

解决方案


试试下面的代码。它将比较列 B 和 W。如果它们相同,则将整行复制到第二个工作表。 ThisWorkbook指的是包含代码的书。

Public Sub Test()

    Dim SheetToCheck As Worksheet, SheetToPasteTo As Worksheet
    Dim lRow As Long
    Dim NextEmptyRow As Long

    Set SheetToCheck = ThisWorkbook.Worksheets("Sheet1")
    Set SheetToPasteTo = ThisWorkbook.Worksheets("Sheet2")

    For lRow = 2 To 20
        If SheetToCheck.Cells(lRow, 2) = SheetToCheck.Cells(lRow, 23) Then 'Compare Col B to Col W.
            NextEmptyRow = SheetToPasteTo.Cells(Rows.Count, 2).End(xlUp).Row + 1
            SheetToCheck.Rows(lRow).Copy Destination:=SheetToPasteTo.Rows(NextEmptyRow)
        End If
    Next lRow

End Sub

推荐阅读