我对VBA不是很熟悉,所以请耐心等待。
现在,我有两个 excel 文件:
第一个工作簿包含以下信息:
- 单位编号(例如 EQ-21(,
- 日期(例如 05/09/2017(, 班
- 次(白班、夜班(,
- 姓氏,以及
- 名字。
第二个工作簿包含以下信息:
- 单位编号(例如 EQ-21(,
- 日期(例如 05/09/2017(, 班
- 次(白班、夜班(,
这两个工作表都包含一个月的数据(大约 20,000 个项目(,并且需要匹配所有三个(单元号、日期和班次(条件,然后将相应的名称从第一个工作表复制到第二个工作表。
我所做的大部分工作都是仅基于一个单元格进行匹配,而不是基于这么多数据进行匹配。朝着正确方向迈出的任何一步都会有所帮助。谢谢!
这是一个可能有效的想法。(我没有测试过(
Set range1 = Sheet1.Range("A1:A1500")
Set range2 = Sheet2.Range("A1:A1500")
For Each cell In range1
For Each cell2 In range2
If cell = cell2 Then
If Sheet1. Range("B"& cell.Row).value = Sheet2.Range("B"& cell2.Row).value And Sheet1.Range("C"& cell.Row).value = Sheet2.Range("C"& cell2.Row).value Then
MsgBox "ok"
Sheet2. Range("D"& cell2.Row).Value = Sheet1. Range("D"& cell.Row).Value
Else
End if
Else
End if
Next cell
Next cell
编辑:
使用此行代替 A1500:
Range("A1").Select
start = ActiveCell.Row
Selection.End(xlDown).Select
end = ActiveCell.Row
Set range1 = Sheet1.Range("A1:A"&end)
Set range2 = Sheet2.Range("A1:A"&end)