用户自定义列表框行源不填充
我有一个OK
和Cancel
button和列表框的用户窗体。 它应该填充使用这个代码:
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