如果前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新手,如果有任何帮助,我将不胜感激。
答案 0 :(得分:0)
您可以使用公式执行此操作,无需代码。我假设“标题1”在单元格A1中为此:在标题3和总计之间添加一个新列。在第一个单元格中添加公式= A2& B2& c2并向下复制。在其他工作簿中执行相同的操作。现在在第一本书的Number1中输入这个公式
=IFERROR(OFFSET([OtherWorkbook]SheetName!D2,MATCH(D2,[OtherWorkbook]Sheetname!D2:D5),2),"")
(使用您的工作簿和工作表名称。现在复制下来。然后您可以通过在两本书中将其宽度设置为零来隐藏我们在开始时添加的列。