显示多列数据的列表框
listbox to show multiple column data
如何让列表框显示设定范围内的数据而不是活动的sheet?
Private Sub UserForm_INITIALIZE()
With ListBox1
.ColumnCount = 2
.ColumnWidths = "50;50"
.RowSource = Sheet3.Range("B2:C21").Address
End With
end sub
怎么样
Private Sub UserForm_Initialize()
With ListBox1
.ColumnCount = 2
.ColumnWidths = "50;50"
.RowSource = "Sheet3!B2:C21"
End With
End Sub
Dim Data As Variant
Dim lastrow As Long
lastrow = Sheet3.Cells(Rows.Count, "b").End(xlUp).Row
ListBox1.ColumnCount = 2
ListBox1.ColumnWidths = "50;50"
Data = Sheet3.Range("b2:c" & lastrow)
ListBox1.List = Data
您也可以使用 .List
代替 .RowSource
Private Sub UserForm_Initialize()
With ListBox1
.ColumnCount = 2
.ColumnWidths = "50;50"
.List = ThisWorkbook.Worksheets("Sheet3").Range("B2:C21").Value
End With
End Sub
是什么导致了活跃的 sheet 引用?
使用 Address
属性 - 尽管明确解决了项目的 Sheet(代码)名称 Sheet3
.RowSource = Sheet3.Range("B2:C21").Address
只会分配单元格的范围地址“$B$2:$C$21”,而不是表格工作sheet引用。
要获得完整参考 Sheet3!B2:C21
,您可以通过
将 External
参数 设置为 True
Sheet3.Range("A1:B7").Address(False,False,External:=True)
或在范围地址字符串前加上工作sheet Name
加上!
Sheet3.Name & "!" & Tabelle1.Range("A1:B7").Address(False,False)
进一步问题
正如您提到的 错误 70(“权限被拒绝”),您很可能还有进一步
试图将行添加到列表框的代码 .List
属性 并不能很好地结合在一起。
就我个人而言,我会完全不使用 .RowSource
并通过 处理列表框列表,或者使用中间隐藏的 sheet 和您可以操作的行源数据。
.
如何让列表框显示设定范围内的数据而不是活动的sheet?
Private Sub UserForm_INITIALIZE()
With ListBox1
.ColumnCount = 2
.ColumnWidths = "50;50"
.RowSource = Sheet3.Range("B2:C21").Address
End With
end sub
怎么样
Private Sub UserForm_Initialize()
With ListBox1
.ColumnCount = 2
.ColumnWidths = "50;50"
.RowSource = "Sheet3!B2:C21"
End With
End Sub
Dim Data As Variant
Dim lastrow As Long
lastrow = Sheet3.Cells(Rows.Count, "b").End(xlUp).Row
ListBox1.ColumnCount = 2
ListBox1.ColumnWidths = "50;50"
Data = Sheet3.Range("b2:c" & lastrow)
ListBox1.List = Data
您也可以使用 .List
代替 .RowSource
Private Sub UserForm_Initialize()
With ListBox1
.ColumnCount = 2
.ColumnWidths = "50;50"
.List = ThisWorkbook.Worksheets("Sheet3").Range("B2:C21").Value
End With
End Sub
是什么导致了活跃的 sheet 引用?
使用 Address
属性 - 尽管明确解决了项目的 Sheet(代码)名称 Sheet3
.RowSource = Sheet3.Range("B2:C21").Address
只会分配单元格的范围地址“$B$2:$C$21”,而不是表格工作sheet引用。
要获得完整参考 Sheet3!B2:C21
,您可以通过
External
参数 设置为 True
Sheet3.Range("A1:B7").Address(False,False,External:=True)
或在范围地址字符串前加上工作sheet Name
加上!
Sheet3.Name & "!" & Tabelle1.Range("A1:B7").Address(False,False)
进一步问题
正如您提到的 错误 70(“权限被拒绝”),您很可能还有进一步
试图将行添加到列表框的代码 .List
属性 并不能很好地结合在一起。
就我个人而言,我会完全不使用 .RowSource
并通过
.