Size数组VBA出错

时间:2018-03-07 21:01:05

标签: vba

我又来了 当我使用数组

时出现错误

从阵列中接纳我的最大尺寸是26 为什么会这样?

错误在于 第3单元 功能列表框 在这一行

Dim mylist1(26) As String
For i = 0 To 26
    mylist1(i) = CStr(Worksheets("Helper").Cells(i + 6, 4).Value)
Next i
With ws.Range("E8:E8").Validation
    .Delete
    .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, _
        Operator:=xlBetween, Formula1:=Join(mylist1, ",")
End With

我从隐藏的工作表中获取值 保存后如果将大小更改为27则有错误 如果你改为27保存 并再次打开,有错误

这是文件链接

https://drive.google.com/open?id=1Uaop86I2AKpeOwORrKYUafGb67b214Bh

感谢

1 个答案:

答案 0 :(得分:0)

由于错误很可能被抛出太长的字符串,因此您可以将验证公式转换为引用列表范围并删除mylist1数组:

Dim nElements As Long

nElements = 26
With WS.Range("E8").Validation
    .Delete
    .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, _
        Operator:=xlBetween, Formula1:="=Helper!$D$6:$D$" & 6 + nElements-1
End With