【问题标题】:listbox to show multiple column data显示多列数据的列表框
【发布时间】:2021-09-13 18:16:51
【问题描述】:

如何让列表框显示来自设定范围而不是活动工作表的数据?

Private Sub UserForm_INITIALIZE()
 With ListBox1

        .ColumnCount = 2
        .ColumnWidths = "50;50"
        .RowSource = Sheet3.Range("B2:C21").Address
    End With
end sub

【问题讨论】:

  • 您的代码对我有用 --- 它使用 B2:C21 的内容填充 Listbox1。你有什么问题?
  • 它正在从活动工作表中填充信息。无论哪个工作表处于活动状态,我都需要它从 sheet3 填充。

标签: excel vba listbox initialization userform


【解决方案1】:

怎么样

Private Sub UserForm_Initialize()
    With ListBox1
        .ColumnCount = 2
        .ColumnWidths = "50;50"
        .RowSource = "Sheet3!B2:C21"
    End With
End Sub

【讨论】:

  • 代码为我运行。我无法重现您遇到的错误。
【解决方案2】:

您也可以使用.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

【讨论】:

    【解决方案3】:

    是什么导致了活动工作表引用?

    使用Address 属性 - 尽管明确解决项目的工作表(代码)名称Sheet3

        .RowSource = Sheet3.Range("B2:C21").Address
    

    只会分配单元格的范围地址“$B$2:$C$21”,而不是表格工作表参考。

    要获得完整的参考 Sheet3!B2:C21,您可以将 External argument 设置为 True via

    Sheet3.Range("A1:B7").Address(False,False,External:=True)
    

    或在工作表Name加上!作为范围地址字符串的前缀

    Sheet3.Name & "!" & Tabelle1.Range("A1:B7").Address(False,False)
    

    另一期

    正如你提到的错误 70(“权限被拒绝”),你很可能还有更多 代码试图将行添加到列表框的 .List 属性,但不能很好地结合在一起。

    就我个人而言,我完全不使用.RowSource,而是通过array assignments 处理列表框列表,或者使用包含可以操作的行源数据的中间隐藏表。

    .

    【讨论】:

      【解决方案4】:
       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
      

      【讨论】:

      • 纯代码答案并不是特别有用。请添加一些关于此代码如何解决问题的描述。
      猜你喜欢
      • 1970-01-01
      • 2020-11-14
      • 1970-01-01
      • 1970-01-01
      • 2014-12-22
      • 1970-01-01
      • 1970-01-01
      • 2020-08-01
      • 1970-01-01
      相关资源
      最近更新 更多