仕事で使用するパーサーに取り組んでいます。基本的に、私は処理するために解析して多次元配列に格納する必要があるデータ行でいっぱいの Excel ドキュメントを持っています。
これが私がこれまでに持っているコードです:
Dim a
Dim iRows As Long
Dim i As Integer
Dim aArray() As Variant
a = Array(2,3,4,5,6,9,10,14,19,21,23,25,29,38)
iRows = ActiveWorkbook.Sheets(1).UsedRange.Rows.Count
ReDim aArray(iRows, UBound(a))
For i = 2 To iRows + 1
For x = 0 To UBound(a)
aArray(i - 2, x) = ActiveSheet.Cells(i, a(i - 2)).Value
Next x
Next i
i = 2
とのオフセットはiRows + 1
ヘッダー行を無視することに注意してください
問題は、出力しようとすると、すべての行が同じaArray(0,1)
でaArray(1,1)
あり、Excel ファイルの異なる行とは異なる値である必要がある同じ値であることがわかります。
さらに、行ごとに保存する列は 14 列あるはずですが、9 の位置を超えて値を出力しようとすると、次のような範囲外エラーが発生します。
ActiveSheet.Cells(1, 1).Value = aArray(10, 0)
ActiveSheet.Cells(1, 2).Value = aArray(11, 0)
メイン配列に格納する値を指定するために使用している小さな配列に基づいて、aArray 内に含まれる各サブ配列の合計 14 の場所にする必要があります。
洞察はありますか?
これは私の最初の実際の VBA スクリプトであることを覚えておいてください。間違いを犯した場合は、私が JS/PHP のバックグラウンドから来ているので、これは私にとっては大きく異なります。