我正在使用Function来创建一个数组。输入也是一个数组。运行时它给我一个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
答案 0 :(得分:9)
Welkom op Stack溢出。
如上所述,你无法重新启动功能本身。因此,使用临时变量,最后将其内容传输到您的函数:
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
答案 1 :(得分:4)
bmhussel
是函数的名称,而不是变量的名称。您不能Redim
功能。
ReDim bmhussel(1 To rijaantal + 1, 1 To kolomaantal + 1)