1
私は、巨大なファイル(800000行)から約7列の行の値を連結する最速の方法を見出そうとしています。2つ以上の文字列配列を結合
私は、各列を別々の配列に読み込むほぼ即時の方法を見出しました。
しかし、以下のコードを使用すると、処理は非常に遅く、100行ごとに2〜3秒かかるようです。
多分、あなたは私の助けを借りて、並列配列の値を連結せずに使うことができます。
列の順序が正しくありません。
For rowI = LBound(arrShInvoice) To UBound(arrShInvoice)
dKey = arrShInvoice(rowI, 1)
dItem = ""
Call displayStatusBarEvents("Procesing " & dFName & vbNewLine & "row: ", rowI, UBound(arrShInvoice), 100, , True)
For Each colI In arrTargetFields
If dItem = "" Then
dItem = dData(colI)(rowI, 1)
Else
dItem = dItem & delimiterI & dData(colI)(rowI, 1)
End If
Next
dDescriptive.Add dKey, dItem
Next
私はVBAとかなり高度だので、あなたの最高のアイデアで私を襲いました。
ループを開始する前に 'Application.ScreenUpdating = false'と書いてみましたか?私はあなたがスピードを必要とするのを見ました...そして、 'displayStatusBarEvents'を削除すると、おそらくあなたの速度も遅くなります。 – Vityata
また、 'dData'はどのような型ですか? –
明らかに、クラシックの包み込み(EnableEvents、...)。 MsOfficeのどのアプリケーションを使用していますか?配列の配列を行うように見えるので、あなたのコード(宣言と埋め込み/配列の分割)をもう少し追加して配列を記述することができますか? ;) – R3uK