Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Excel VBA列表框-选择文本问题_Excel_Vba_Listbox - Fatal编程技术网

Excel VBA列表框-选择文本问题

Excel VBA列表框-选择文本问题,excel,vba,listbox,Excel,Vba,Listbox,有没有人可以用我在vba(基于excel)中制作的系统为我指明正确的方向 我目前有一个用户表单,它选择了多列列表框,列表框是从数据库填充的。但是,当您选择列表框上的项目时,它只显示第一列。我如何才能使它显示第一列和第二列。请参见下面的图片 我建议遵循MSDN文档: [编辑] 相应地,您可以使用: ListBox1.ColumnWidths = Replace$("0;500", ";", Application.International(xlListSeparator)) 如果您正在

有没有人可以用我在vba(基于excel)中制作的系统为我指明正确的方向

我目前有一个用户表单,它选择了多列列表框,列表框是从数据库填充的。但是,当您选择列表框上的项目时,它只显示第一列。我如何才能使它显示第一列和第二列。请参见下面的图片


我建议遵循MSDN文档:



[编辑]

相应地,您可以使用:

ListBox1.ColumnWidths = Replace$("0;500", ";", Application.International(xlListSeparator))

如果您正在寻找更灵活的解决方案,独立于区域设置。

为了提供备选方案(已找到):


在这种情况下不需要columnwidth(不过,这是一种更优雅的方式)。

有一个
ColumnWith
属性。您可以将列(0)=0设置为隐藏此列并仅显示说明。谢谢您解决了我的问题。非常感谢!利亚姆,请接受我的解决方案。使用
ListBox1.ColumnWidths=Replace$(“0;500”,“;”,Application.International(xlListSeparator))
,无论用户在其操作系统中设置了什么,它总是正确的。@Pᴇʜ,谢谢你的宝贵意见。这在与VBA代码一起使用时非常有用。我的第一个想法是提供一种在没有VBA代码的情况下实现这一点的方法。干杯,MaciejI我不确定这是否是一个更优雅的解决方案。它只是基于意见。在我看来,最终用户不必知道什么类别有什么号码。但是这是我的意见;)
ListBox1.ColumnWidths="0;500" 'replace `;` with `,` if your system uses commas as a separator
ListBox1.ColumnWidths = Replace$("0;500", ";", Application.International(xlListSeparator))
Private Sub ComboBox1_Click()

With ComboBox1
    .Text = .List(.ListIndex, 0) & " | " & .List(.ListIndex, 1)
End With

End Sub