Excel 选择后如何在组合框中显示第二列?
我可以单击我的组合框并查看Column1和Column2的值,但在我单击组合框的开/关后,Column1中的值始终显示,我希望Column2的值显示出来 我试过这个:Excel 选择后如何在组合框中显示第二列?,excel,vba,Excel,Vba,我可以单击我的组合框并查看Column1和Column2的值,但在我单击组合框的开/关后,Column1中的值始终显示,我希望Column2的值显示出来 我试过这个: With ComboBox2 .Value = "None" .ColumnHeads = True .ColumnCount = 2 .ColumnWidths = "50;100" .RowS
With ComboBox2
.Value = "None"
.ColumnHeads = True
.ColumnCount = 2
.ColumnWidths = "50;100"
.RowSource = "SetupQuestions!A42:B48"
.BoundColumn = 2
End With
Private Sub ComboBox2_AfterUpdate()
ComboBox2.Value = ComboBox2.Column(2)
End Sub
这并没有像我想的那样设定值
我试过这个:
With ComboBox2
.Value = "None"
.ColumnHeads = True
.ColumnCount = 2
.ColumnWidths = "50;100"
.RowSource = "SetupQuestions!A42:B48"
.BoundColumn = 2
End With
Private Sub ComboBox2_AfterUpdate()
ComboBox2.Value = ComboBox2.Column(2)
End Sub
这并没有像我想的那样设定值
选择后,如何强制组合框在第2列中显示值?Argh!这不是价值
是的,文本
Private Sub ComboBox2_AfterUpdate()
Me.ComboBox2.text = Me.ComboBox2.Column(1)
End Sub
如果你只关心外表,有一个解决办法
Private Sub ComboBox2_Click()
With ComboBox2
.Text = .List(.ListIndex, 0) & " | " & .List(.ListIndex, 1)
End With
End Sub
我来这里是因为我也想解决这个问题。但是其他人的反应帮助我找到了答案。 如果你还没有得到它,这是我的解决方案
Private Sub ComboBox_AfterUpdate()
ComboboxList.Text = ComboboxList.Column(0) & " " & ComboboxList.Column(1)
End Sub
您可以在没有VBA的情况下使用的替代方法 组合行源根据您的情况进行调整:
SELECT Adults.aID, Trim([Adults].[LastName]) & ", " & Trim([Adults].[FirstName]) AS Expr1
FROM Adults WHERE ((Not (Adults.LastName)=("isNull")))
ORDER BY Adults.LastName, Adults.FirstName;
基本上,通过SQL将第二列设置为复合单字段
绑定列:1,列数:2,列宽:0cm;4厘米
通过将字符串表示构建为单个字段,您可以使用此技术显示任何需要的内容。原因在于您的ColumnWidth设置。您的组合框显示两列。第二个无法显示,因为框的总宽度不足。因此,您只能看到第一列。将ColumnWidth设置为0;100,您将看到第二列。确保框的宽度与要在其中显示的列的宽度之间存在工作关系。组合框的下拉列表可以显示多个列,但选择一行后,它只能将一列显示为文本。要显示第二列,请使用属性列
Me.ComboBox1.TextColumn = 2
使用组合框右侧的文本字段。将组合框中的列数设置为2。 将列表宽度设置为组合框和文本的大小a+b 为组合框的大小和文本a的大小设置列宽;B 由于columns属性是基于0的列数组,因此将文本字段的源设置为=[MyCombo].Columns1以显示第二个字段。 下拉时,第一列应正好位于组合框下方,第二列位于文本框下方。 更新组合时,文本框应相应地更新其值。
此外,您可能希望将文本框属性锁定为true,启用为false。实际上,它仍然没有执行我希望它执行的操作。它仍在第1列中显示值或文本。我真的很想在我从组合框中选择值后在第2列中看到值。我认为你不能用组合框来做这件事。改用列表框。有没有办法显示第一列和第二列?