excel - 列表框单击 vba excel
问题描述
我有一个这样排列的excel工作表数据
我想编写一个代码以在列表框中显示设备(A 到 G 列),当我单击设备名称时,我有知道如何使用设备的人员列表显示在另一个列表框中,即 2 个列表框在同一个用户表单中。
我写了这段代码,但我不知道如何完成它:在 additem 之后我应该写什么?
Private Sub ListBox_Equip_Click()
fin_liste_equip = ws_Liste_Equip.Cells(1, 256).End(xlToLeft).Column
curVal = Me.ListBox_Equip.Value
For x = 2 To fin_liste_equip
If ws_Liste_Equip.Cells(x, fin_liste_equip) = curVal Then
Me.ListBox_Pers_Mait.AddItem ws_Liste_Equip
End
If
Next x
解决方案
或者可能是这样的?
Private Sub ListBox_Equip_Click()
'fin_liste_equip = ws_Liste_Equip.Cells(1, 256).End(xlToLeft).Column
curVal = Me.ListBox_Equip.Value
Set c = Rows(1).Find(curVal, lookat:=xlWhole)
If c.Offset(1, 0).Value = "" Then Exit Sub
Set Rng = Range(c.Offset(1, 0), c.End(xlDown))
ListBox_Pers_Mait.Clear
If Rng.Rows.Count = 1 Then ListBox_Pers_Mait.AddItem c.Offset(1, 0).Value
If Rng.Rows.Count > 1 Then ListBox_Pers_Mait.List = Application.Transpose(Rng)
'For x = 2 To fin_liste_equip
' If ws_Liste_Equip.Cells(x, fin_liste_equip) = curVal Then
' Me.ListBox_Pers_Mait.AddItem ws_Liste_Equip
' End
End Sub
该代码假定第 1 行的列中不会有重复的 équipements 名称。或者换句话说,您的 ListBox_Equip 项目是唯一的。
推荐阅读
- angular - Angular:我可以将翻译与异步管道一起使用吗?
- javascript - 如何使用javascript读取本地文件?
- kotlin - 相当于 Kotlin 中 C# 的 Semaphore/SemaphoreSlim?
- html - 在 Angular 中,有没有办法在页面加载时更改某个变量的值?
- c++ - CMake - clang++ 无法编译简单的测试程序 Ubuntu 18.04
- python - PYMONGO:无法从数据库中检索数据
- visual-studio - Visual Studio 2017 为新的 F# .Net 核心项目创建 System.ValueTuple (4.3.1) 的无效 Nuget 引用?
- javascript - 如何一键过滤json数组中的对象
- python - 在Kivy中如何通过该功能实现到新Screen的过渡?
- webpack - 为 npm 打包 Vue 组件