无法将动态范围分配给ListBox控件

时间:2019-04-22 20:45:44

标签: excel vba

这应该很简单,但无法正常工作。我在一个名为Master的工作表上有一个按钮,当单击该按钮时应显示一个用户窗体(名为AddApplicant)。该用户窗体包含一个列表框(名为lstCourses),我想在其中显示名为“课程详细信息”的工作表中的一些值。 “课程详细信息”工作表是通过编程方式生成的,但这应该没有影响,因为我将启动用户表单的按钮设置为仅在此工作表存在时启用。

当我尝试单击显示用户窗体的按钮时,出现应用程序定义或对象定义的错误。

问题似乎出在将范围加载到ListBox中的代码中,因为当我注释掉这些代码行时,表单就会显示出来。

Private Sub UserForm_Initialize()

Dim cell As Range
Dim cellList As Range
Set cellList = Worksheets("Course Details").Range(Range("A2"), Range("A2").End(xlDown))

For Each cell In cellList
    lstCourses.AddItem cell.Value
Next cell

End Sub

'Here is the code assigned to the button that launches the form
AddApplicant.Show

1 个答案:

答案 0 :(得分:0)

在这里为您清理几件事:

Dim cell As Range, cellList As Range
With Worksheets("Course Details")  'added this as you have range references without sheets
    Set cellList = .Range(.Range("A2"), .Range("A2").End(xlDown))
    For Each cell In cellList
        lstCourses.AddItem cell.Value
    Next cell
End With

这是从初始化运行的,因此您已经加载了工作表,因此无需再次.show

应该有一个单独的按钮,该按钮使用如下的宏读数:

sub uf_loader()
    AddApplicant.Show
end sub