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 

你还没有正确地声明你的list1variables。

总是声明所有的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,则可以使用ReDimReDim Preserve语句)。