我目前有50k +行的两个文件。 它们都包含订单代码。在一个文件中可能是Right(“AQ column”,7),另一个文件将在C列中。 我想匹配订单代码,并比较这些值是否相同。另外,在第二个文件中,应该在另一列中检查是否存在与“SETTLED”匹配的字符串,因为该文件中存在重复的订单代码。VBA - 调整大型数据集
我已经尝试了几种方法,我会在下面贴上一个效率不高的贴子,以便我正在尝试修复以确保清晰。 revnW和Wpay是2个不同的工作簿
DesLRow = revnW.Sheets(1).Cells(Rows.Count, 1).End(xlUp).Row
SrcLRow = wPay.Sheets(1).Cells(Rows.Count, 1).End(xlUp).Row
For i = 2 to DesLrow
for j = 3 to srcLrow
If right(revnW.Sheets(1).Cells(i,43).text, 7) = wPay.Sheets(1).Cells(j,3).text And_
Instr(wPay.Sheets(1).Cells(j,5).text, "SETTLED") And value <> value 2 (pseudo code) Then
Do stuff (get transaction number, and some other things)
exit for
next j
Next i
我知道这个代码是没有效率的,我试图列加载到一个数组,但然后我只能比较一列,而不是值等。
任何帮助将不胜感激。
你有没有试过在VBA中使用ADODB?使用基于数据库的方法将是您的最佳选择。任何使用2个循环的VBA解决方案都会慢很多! –
在这里看到我的答案使用一对字典对象的方法http://stackoverflow.com/questions/35777978/vba-comparing-two-2d-arrays-rows-vba-throws-type-mismatch-declarations-ok/ 35778287#35778287它会比现在的代码快很多。 –
嗨蒂姆,看起来很有趣,如果我理解正确,这将是像3维数组?每个阵列的“位置”将由3列组成? –