用户自定义列表框行源不填充

我有一个OKCancelbutton和列表框的用户窗体。 它应该填充使用这个代码:

 Private Sub UserForm_Initialize() Me.StartUpPosition = 0 Me.Top = Application.Top + (Application.Height / 2) - (Me.Height / 2) Me.Left = Application.Left + (Application.Width / 2) - (Me.Width / 2) With Me.ListBox1 .RowSource = "" .ColumnCount = 7 .ColumnWidths = "80;100;20;1;20;1;1000" .RowSource = Sheets("BOH Database").Range("H9:N14").Address ' .RowSource = Sheets("BOH Database").Range("H9:N" & Sheets("BOH Database").Range("a65536").End(xlUp).Row - 1).Address End With End Sub 

这两个RowSource语句都不起作用。 我已经尝试清除RowSource再填充之前。 我究竟做错了什么?

编辑:我已经添加了我目前在这里的代码,因为它不能正确显示在评论中:我使用这个基于你的代码,它崩溃了工作表:

 With Me.ListBox1 .ColumnCount = 7 .ColumnWidths = "80;100;20;1;20;1;1000" .RowSource = "'" & Sheets("BOH Database").Name & "'!" & Sheets("BOH Database") _ .Range("H9:N" & Sheets("BOH Database").Range("a65536").End(xlUp).Row - 1).Address End With 

这是一个不正确的做法。 语法是

 ListBox1.RowSource = "SheetName!RangeAddress" 

所以如果你的工作表名称是Sheet1那么上面的就会变成

 ListBox1.RowSource = "Sheet1!H9:N14" 

此外,由于您的工作表名称有一个空格,所以您必须在工作表名称前后添加。

尝试这个

  ListBox1.RowSource = "'BOH Database'!H9:N14" 

或者以你的方式…

 With Sheets("BOH Database") ListBox1.RowSource = "'" & .Name & "'!" & .Range("H9:N14").Address End With