私は大量のデータを処理しているExcelブックを持っています。この時点では、およそ5000列と1000行ですが、これは大きくなります。私は定義されていると、私は次のようにforループを二重を使用する場合は、次のように配列にはvbaの配列の特定の列にデータの列全体を割り当てる
ReDim arr(1 To numRows, 1 To lastcol3)
私は配列全体を読み込むことができ、それが動作します:
WS1は、ワークシート内にあるFor r = 1 To lastcol3
For i = 1 To numRows
arr(i, r) = ws1.Cells(i, 11)
Next
Next
質問11はデータを取得したいデータの列です(rのすべての値が変更されます)。このメソッドは機能しますが、データの各行をループする必要があるため、膨大な時間がかかります。
rのすべての値に対して、配列内の対応する列 "r"に列11を割り当てる方法があるのだろうかと思っていました。これにより、コードがrだけループする必要があります。
私はオンラインでたくさんの検索をしましたが、配列内の特定の列を定義してデータの範囲と同じにする方法が見つからないようです。
コードの詳細やコピーが必要な場合は、教えてください。
警告a保存するオプションが設定されたアレイを赤目補正するときに情報を保持したい場合は、アレイの最後にリストされたディメンションのサイズを変更することしかできません。あなたに役立つかもしれないし、役に立たないかもしれないが、私がこの問題に遭遇して以来、私が言及すると思った。 –
サイズを定義する必要はなく**メモリに範囲値を読み込む**についての記事がたくさんあります。 'Dim oValues as Variant:oValues = ActiveSheet.UsedRange.Value'のような何かを行うことができます。これは、空の値を含む使用範囲のすべての値をメモリにロードします。境界を取り出すには 'LBound/UBound(oValues、1/2)'を使います:1:rows、2:cols – PatricK