5

関数を使用して配列を作成しています。入力も配列です。実行すると、invalid ReDimコンパイルエラーが発生します。これがサブルーチンで実行されてReDimうまく機能する前は、関数で変更したところ、invalid ReDimコンパイルエラーが発生しました。ここで何が欠けていますか?

前もって感謝します!アミール

Public Function bmhussel(filemx As Variant)

rijaantal = UBound(filemx, 1)
kolomaantal = UBound(filemx, 2)


ReDim bmhussel(1 To rijaantal + 1, 1 To kolomaantal + 1)

For i = 1 To rijaantal
    bmhussel(i, 1) = filemx(i, 1)
    bmhussel(i, 2) = filemx(i, 3)
    bmhussel(i, 3) = filemx(i, 5)
    bmhussel(i, 4) = filemx(i, 28)
    bmhussel(i, 5) = bucket(filemx(i, 28)) 'buckets maken
next i

End Function
4

2 に答える 2

10

Welkomopスタックオーバーフロー。

前述のように、関数自体を変更することはできません。したがって、一時変数を使用し、最終的にそのコンテンツを関数に転送します。

Public Function bmhussel(filemx As Variant) as Variant

Dim rijaantal As Long
Dim kolomaantal As Long
Dim tmpArray as Variant

rijaantal = UBound(filemx, 1)
kolomaantal = UBound(filemx, 2)

ReDim tmpArray (1 To rijaantal + 1, 1 To kolomaantal + 1)

For i = 1 To rijaantal
    tmpArray(i, 1) = filemx(i, 1)
    tmpArray(i, 2) = filemx(i, 3)
    tmpArray(i, 3) = filemx(i, 5)
    tmpArray(i, 4) = filemx(i, 28)
    tmpArray(i, 5) = bucket(filemx(i, 28)) 'buckets maken
next i

bmhussel = tmpArray

End Function
于 2012-12-24T23:15:18.547 に答える
4

bmhusselは関数の名前であり、変数の名前ではありません。あなたはRedimあなたの機能をすることはできません。

ReDim bmhussel(1 To rijaantal + 1, 1 To kolomaantal + 1)

于 2012-12-24T23:09:58.603 に答える