所以现在我有一个宏使用公式从另一个工作簿中提取数据。我想知道是否有更快的方法来处理数据。因为有时间我有大量的数据集,它需要更长的时间来处理,或者这是最快的方式,而且没有办法解决它。以下是我用来提取信息的内容:
With Range("V2:V" & LastDataRow)
.Formula = "=IF(A2 = ""No Specific Program"",IF(F2 = """",""No PIN"",IFERROR(VLOOKUP(CONCATENATE(B2,F2),'\\NW\Data\Tech\Team\Data\DataMining\[PIN_TABLE.xlsx]Sheet1'!$C:$I,4,FALSE),""NO GAD DATA"")),IFERROR(VLOOKUP(CONCATENATE(A2,F2),'\\NW\Data\Tech\Team\Data\DataMining\[PIN_TABLE.xlsx]Sheet1'!$C:$I,4,FALSE),""NO GAD DATA""))"
.HorizontalAlignment = xlGeneral
.VerticalAlignment = xlBottom
.WrapText = True
End With
此外,我的ScreenUpdating为False,计算为手动,禁用状态栏,EnableEvents为False。
答案 0 :(得分:0)
您需要使用If then和ELSEIF语句 -
细分代码for each y in rng
If sheet("Name").range("A2") = "No Specific Program" AND sheet("Name").range("A2") = "" then' the A2 here can be controlled with "A" & y.row
sheet(y.address) = "No PIN"
Else if sheet("Name").range("A2").value & sheet("Name").range("A2").value = "something" then....
sheet(y.address) = "No PIN"
end if
next y
如果只有一个值,我仍然建议使用INDEX(匹配(值,数组,0),匹配(值,数组,0)),否则我会使用sumif / sumifs。或者只是匹配。一切都取决于数据的结构。