VBA用户窗体:将4列ListBox选中项分别填入对应TextBox
实现ListBox选中项同步到TextBox的VBA方案
直接通过ListBox的点击事件就能实现需求,步骤和代码如下:
- 打开用户窗体的代码编辑窗口:双击用户窗体空白处,或者右键用户窗体选择「查看代码」
- 在代码窗口的控件下拉框选择你的ListBox(比如
ListBox1),然后在事件下拉框选择Click(或Change,两者效果接近) - 粘贴以下代码,根据你的控件名称调整(如果你的ListBox或TextBox名称不一样,替换成实际名称):
Private Sub ListBox1_Click() ' 先判断是否有选中项,防止空选时出错 If ListBox1.ListIndex <> -1 Then ' ListBox的列索引从0开始,第1列对应索引0,依次类推 TextBox1.Value = ListBox1.List(ListBox1.ListIndex, 0) TextBox2.Value = ListBox1.List(ListBox1.ListIndex, 1) TextBox3.Value = ListBox1.List(ListBox1.ListIndex, 2) TextBox4.Value = ListBox1.List(ListBox1.ListIndex, 3) Else ' 未选中任何项时清空所有文本框 TextBox1.Value = "" TextBox2.Value = "" TextBox3.Value = "" TextBox4.Value = "" End If End Sub
关键说明
ListIndex:返回当前选中项的行号,没有选中项时返回-1,先判断这个值可以避免运行时错误List(行索引, 列索引):ListBox的列是从0开始计数的,所以你说的「第1列」对应索引0,「第4列」对应索引3- 如果你的ListBox设置了允许多选,需要额外处理,但默认单选场景下上面的代码完全适用
内容的提问来源于stack exchange,提问作者Fgomes
相关产品推荐
相关产品推荐

