返回列表 上一主題 發帖

[發問] 陣列大小如何以變數替代

try .....

d(A & "") = Br

TOP

不是只有 Array
以下也會產生 "陣列索引超出範圍"

Workbooks("不存在的wb").Activate
Sheets("不存在的ws").Select

TOP

本帖最後由 jackyq 於 2019-3-8 22:03 編輯

' 有可能你的 k值 出現 <=0
' 你可以試試下面

Option Base 1  

Sub QX9650_____()

Dim a()


k = 10
ReDim a(k)

k = 1
ReDim a(k)

k = 0
ReDim a(k)  '你把陣列下限設為 1 , 結果變成 Redim  a(1 to 0)

End Sub




'    If k >= 1 Then
'        For Each a In .Range(.[A9], .[A6000].End(xlUp))
'            ReDim Br(k)
'
'            For j = 1 To k
'            Br(j) = a.Offset(, j + 159).Value
'            Next j
'            d1(a & "") = Br
'        Next
'    End If

TOP

本帖最後由 jackyq 於 2019-3-8 23:19 編輯

(1)
k=0 時
會變成 Redim Br(1 To 0)  '--> VBA 沒有辦法配置這種陣列
IF K>=1 Then ..... End if 可以防止 執行到 Redim Br(1 To 0)  

(2)
儘量不要去使用 Option Base 1 這種東西

最好直接寫成 Redim Br(1 To K)

TOP

        靜思自在 : 太陽光大、父母恩大、君子量大,小人氣大。
返回列表 上一主題