UserForm1.Show给出错误9
我创build了一个ActiveXbutton来打开一个表单使用该行
UserForm1.Show
但是当我点击button,我得到错误9(下标超出范围)。 窗体存在,窗体的名称是UserForm1。 当我debugging时,它突出显示UserForm1.Show行,但我不明白什么是错的。
编辑:
初始化代码如下
Private Sub UserForm_Initialize() Let list1 = Array() For j = 0 To 67 list1(j) = Sheet2.Cells(2+j, 1) Next Let colors = Array("Blue", "Black", "Gold", "Green") ComboBox1.List = list1 ListBox1.List = colors End Sub
你还没有正确地声明你的list1
variables。
总是声明所有的variables,在数组的情况下,如果可能的话在初始化时进行维度定义。 或者,将它们保留为变体,并且可以使用Array(...)
函数进行赋值(就像使用colors
)。 但是,对于list1
数组,您已经初始化它为一个上限为-1的空数组,因此对list1(0)
第一个赋值将失败,因为0
超出了界限。 相反,因为你知道这个数组需要len = 68,所以用Dim
语句来定义它:
Option Explicit ' # Enforce variable declaration!! Private Sub UserForm_Initialize() Dim list1(67) Dim colors() Dim j as Long colors = Array("Blue", "Black", "Gold", "Green") For j = 0 to 67 list1(j) = ...
(如果您稍后需要resize,则可以使用ReDim
和ReDim Preserve
语句)。