0
今、私は数式を使用して別のブックからデータを取得しているマクロを持っています。私はデータを処理するより速い方法があるのだろうかと思っていました。私は大きなデータセットを持っている時間があり、それが処理するためにはより長い時間がかかります。あるいは、これが最速の方法であり、その周りに道がない場合です。ここで私は情報を引き出すために使用しているものです:VBAの式を使用する以外の高速ルートを検索しようとしています
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
また、私は、Falseに手動、無効ステータスバー、およびFalseにEnableEventsに計算をScreenUpdatingを持っています。
外部ワークブックを開き、値を配列に読み込み、配列を使用して処理します。 – Jeeped
Jeepedのコメントは最適な解決策ですが、不要な複数の列を参照していないので、大量のデータセットで '= INDEX(MATCH())'が '= VLOOKUP'より効率的であることにも注意してください。 –
私が採用している2つの方法は、@ Jeepedが述べたことです、またはADOで情報を照会します。特定の状況によって異なります。 – Kyle