1

VBAでアレイを使用することについて、いくつかの基本的な質問がありますが、答えは見つかりませんでした。

まず、Excel VBAで1次元の行ベクトルを指定する方法はありますか?

私はExcelVBAで配列を使用するのは初めてで、次の例のように、行と列のベクトルを2次元配列として定義しています。

'Define a Local Row Vector
ReDim aArray(1 to iCntRows, 1 to 1)

'Define a Local Column Vector
ReDim aArray(1 to 1, 1 to iCntCols)

第二に、これはベストプラクティスですか?代わりに1次元配列を使用する必要がありますか?

ありがとうティム

4

3 に答える 3

1
Sub tt()

    Const SZ As Long = 1000
    Dim arr(), x

    ReDim arr(1 To SZ)
    For x = 1 To SZ
        arr(x) = x
    Next x

    'add to sheet (as a row)
    Sheet1.Range("a1").Resize(1, SZ).Value = arr

    'add to sheet (as a column)
    'note there is an upper limit when using transpose of around 65k
    Sheet1.Range("a5").Resize(SZ, 1).Value = Application.Transpose(arr)

End Sub
于 2013-02-22T02:06:18.460 に答える
1

配列を範囲にコピーする場合、

Range(somerange) = aArray

次に、はい、2D配列を使用します

于 2013-02-21T18:17:59.727 に答える
1

2次元配列から変換するには、転置関数を使用する必要があります。

new_array = Application.Transpose(Sheet1.Range("A2:A100").Value)

ここで、new_arrayは1次元配列です。

于 2013-02-21T19:02:54.043 に答える