【发布时间】:2016-08-26 16:24:25
【问题描述】:
我对 VBA 还是很陌生,但我在工作表上有两个 activex 列表框。在一个列表框中,我有销售人员姓名(称为 lstNames),而另一个列表框有位置(lstSite)。我想要达到的目标如下:
- 从 lstNames 中选择名称
- 从 lstNames 中选择会生成 lstSite,其中包含与名称关联的几个位置的列表。
例如,如果我从 lstNames 列表框中选择 Bob,则 lstSites 列表框将填充 Bob 的所有站点,例如 NY、CO、CA、PA。如果我从 lstNames 中选择 Susan,则 lstSites 将清除 Bob 的并添加 Susan 的 TX、WA、OR 等站点。
lstNames 和 lstSite 从同一个工作表中提取:
Column 1: Names
Column 2: Site
我一直在尝试进行 Vlookup 以将项目添加到列表框,但它不起作用。我知道我可以执行 select case 语句并手动添加站点,但我想编写一个可以自动运行的好代码。
Select Case lstNames.Value
Case "Bob"
lstSites.AddItem WorksheetFunction.VLookup(lstDM.Text, wkbhcsfdata.Worksheets("Names+Sites").Range("Sites"), 1, False)
End Select
【问题讨论】:
-
使用列表框事件触发一个宏,该宏在列表中运行并添加与 Bob 关联的项目。
-
这个答案并没有真正的帮助。我一直在尝试在 lstNames 单击事件上执行此操作以运行 vlookup 函数以将项目添加到 lstSites 列表框。
-
这不是一个答案,它是一个帮助拉近你的评论。不要使用
Click事件,在列表框中使用Change事件。 -
什么是“lstDM”? “站点”范围结构是什么样的? (有多少列,在哪里)
标签: excel vba select listbox vlookup