【发布时间】:2018-08-18 03:33:47
【问题描述】:
我对 VBA 很陌生,我一直在尝试开发一种工具来合并两张只有选定数据列的工作表以输出工作表。
我有两张名为 RCV 和 MGT 的工作表。两者都有一个应该匹配的唯一列,并将其粘贴到名为 Output 的第三张表上。
我尝试从一个单元格移动到另一个单元格,但由于数据量太大,需要很长时间,因为检查每个单元格的迭代次数太高。
RCV 表有大约 35000 行数据,MGT 表有大约 25000 行数据。
Sub Merge_Data()
Dim i, j
Dim k
Dim WS1 As Worksheet
Set WS1 = ThisWorkbook.Sheets("RCV")
Dim WS2 As Worksheet
Set WS2 = ThisWorkbook.Sheets("MGT")
Dim files As Variant
Dim LRow1 As Long
LRow1 = WS1.Range("A" & WS1.Rows.Count).End(xlUp).Row
Dim LRow2 As Long
LRow2 = WS2.Range("A" & WS2.Rows.Count).End(xlUp).Row
k = 3
For i = 2 To LRow1
For j = 2 To LRow2
If Sheets("RCV").Cells(i, "Q").Value = Sheets("RCV").Cells(j, "AD").Value
Then
Sheets("Output").Cells(k, "F").Value = Sheets("RCV").Cells(i, "Q").Value
Sheets("Output").Cells(k, "H").Value = Sheets("RCV").Cells(i, "R").Value
Sheets("Output").Cells(k, "A").Value = Sheets("MGT").Cells(j, "V").Value
k = k + 1
End If
Next
Next
End Sub
请帮我解决这个问题。当条件匹配时,我需要从 RCV 表和 MGT 表中复制多列(列范围从 Q2 到 Lastrow = AD2 到 Lastrow)。
合并 RCV 表和 MGT 表中的列后的输出表:
【问题讨论】:
-
I-N-D-E-N-T-A-T-I-O-N
-
@JohnyL rubberduckvba.com/Indentation