VBA-比较第二张纸上的纸张和复印值

问题描述 投票:-2回答:1

我试图比较两个工作簿,如果前3列匹配,将第5列复制到第5列第一个工作簿。

必须在整个工作表中完成此检查。

工作表1:

| Heading 1 | Heading2 | Heading 3 | Total | Number1 |
|-----------|----------|-----------|-------|---------|
| ABC       | EF       | GH        |       |         |
| XYZ       | AB       | EF        |       |         |
| HIK       | IJ       | PQ        |       |         |

工作表2:

| Heading 1 | Heading2 | Heading 3 | Total | Number1 |
|-----------|----------|-----------|-------|---------|
| QRS       | EF       | GH        |       | 5       |
| XYZ       | AB       | EF        |       | 4       |
| DEF       | QR       | IV        |       | 16      |
| HIK       | IJ       | PQ        |       | 8       |

期望的输出:

| Heading 1 | Heading2 | Heading 3 | Total | Number1 |
|-----------|----------|-----------|-------|---------|
| ABC       | EF       | GH        |       |         |
| XYZ       | AB       | EF        |       | 4       |
| HIK       | IJ       | PQ        |       | 8       |

我尝试了以下操作,但它不起作用:

Dim i As Integer

Sheets("Sheet1").Activate

For i = 2 To 100

    ActiveSheet.Cells(i,5).Select
    ActiveCell.FormulaR1C1 = "=IFERROR(IF(AND(Table2[@[Heading1]]=Consolidated!RC[-4],Table2[@[Heading2]]=Consolidated!RC[-3],Table2[@[Heading3]]=Consolidated!RC[-2]),Table2[Number1],"" ""),"" "")"

Next i    

我是VBA新手,非常感谢任何帮助。

excel vba
1个回答
0
投票

你可以用公式做到这一点,不需要代码。我假设“标题1”在单元格A1中为此:在标题3和总计之间添加一个新列。在第一个单元格中添加公式= A2&B2&c2并向下复制。在其他工作簿中执行相同的操作。现在在第一本书的Number1中输入这个公式

  =IFERROR(OFFSET([OtherWorkbook]SheetName!D2,MATCH(D2,[OtherWorkbook]Sheetname!D2:D5),2),"") 

(使用工作簿和工作表名称。现在复制下来。然后,您可以通过在两本书中将其宽度设置为零来隐藏我们在开始时添加的列。

© www.soinside.com 2019 - 2024. All rights reserved.