前提
仕事でVBAを使用する為、学習を始めました。
データ量が多いCSVファイルを加工する必要がある為、
高速処理ができる二次元配列を使用して、コピーや貼り付けができるようにアウトプットしています。
実現したいこと
A1:AA6(6行27列)の表があり、この表をコピーと貼り付けしたいのですが、
以下のコードで実行するとA1:F6(6行6列)0しか貼り付けされません。
表全てをコピーし、貼り付けができるようにしたいです。
該当のソースコード
VBA
1Sub test() 2 Dim row_i As Integer, column_i As Integer 3 Dim arr() As Variant 4 5 Set MasterWs = Worksheets("sample") 6 7'行数列数を求める 8 rowsData = MasterWs.Cells(Rows.Count, 1).End(xlUp).Row 9 columnsData = MasterWs.Cells(1, Columns.Count).End(xlToLeft).Column 10 11 12 ReDim Preserve arr(columnsData, rowsData) 13 14'二次元配列に値を入れていく。恐らくここがおかしい。 15 For column_i = 0 To columnsData 16 For row_i = 0 To rowsData 17 arr(column_i, row_i) = MasterWs.Cells(column_i + 1, row_i + 1) 18 Next 19 Next 20 21 22 iRowMax = UBound(arr, 1) - LBound(arr, 1) 23 iColMax = UBound(arr, 2) - LBound(arr, 2) 24 Range("A8").Resize(iRowMax, iColMax).Value = arr 25 26End Sub 27
試したこと
表の中で空白があれば、埋めてみた。
縦も横も6行なのが怪しかったので、column_iとrow_iを逆にしてみた。

回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2022/09/30 07:55