首页 > 解决方案 > Excel循环比较两列

问题描述

我有两张床单。表1:

在此处输入图像描述

和表 2:

在此处输入图像描述

我已将每一列保存到一个 Array() 中,所以我有 8 个不同的数组。

我需要做的是遍历sheet1中“A”列中的每一行,看看sheet2中“A”列中是否有匹配项。如果有匹配项,我需要检查 sheet1 中“B”列中的值,并查看 sheet2 中是否有填写。例如,如果 (sheet1) "B2" = "Alder" 我需要 (sheet2) "B8" <> 0。

 count = 1
 Do While (count < 2000)
  If (Array1(count) <> "") Then
    count = 1
    Do While (count < 2000)
      If (Array1(count) = Array2(countm) Then
        '' check the value in column "B" in sheet1 and see if there is a fill in sheet2. 
        
      End If
      countm = countm + 1
    Loop
  End If
  count = count + 1
 Loop

我希望这是有道理的。

标签: excelvba

解决方案


您可以使用一个简单的公式来实现这一点:

=INDEX(Sheet2!A:C,MATCH($A2,Sheet2!$A:$A,0),MATCH($B2,Sheet2!$1:$1,0))

把它放在 Sheet1 的 C2 列中

由于您需要 VBA,请将其放入您的代码中。

请记住根据需要更改单元格引用

ThisWorkbook.Worksheets("Sheet1").Range("C2:C3").Cells.FormulaR1C1 = "=INDEX(Sheet2!C[-2]:C,MATCH(RC1,Sheet2!C1,0),MATCH(RC2,Sheet2!R1,0))"
ThisWorkbook.Worksheets("Sheet1").Range("C2:C3") = ThisWorkbook.Worksheets("Sheet1").Range("C2:C3").Value

推荐阅读