excel - 在没有用户窗体的情况下在 VBA 中添加组合框和一些选项的简单方法?
问题描述
编辑:我正在使用 ActiveX 组合框。
我一直在尝试使用在这里和这里找到的不同解决方案,但这些示例似乎对我不起作用。他们没有明确说明确切的放置位置
With Sheet1.ComboBox1
.AddItem "Paris"
.AddItem "New York"
.AddItem "London"
End With
在我尝试放置它们的任何地方,我的组合框中都没有添加任何内容。
此外,这些教程中的许多似乎都在使用用户表单。我对拥有用户表单不感兴趣,我只想要一个组合框,在我的 Excel 电子表格中包含一些选项,这取决于用户在组合框中选择的值,单元格会更改其值。我想做的就是写这样的东西:
Private Sub ComboBox1_Change()
.AddItem "Yes"
.AddItem "Average"
.AddItem "No"
End Sub
然后是类似的东西:
if ComboBox1 = "Yes"
then Range("D2").Value = 1
解决方案
如果您希望在工作表激活时加载组合框,请在 VBA 的工作表对象中使用它:(这可能会导致组合框在工作表之间来回切换时加载重复的条目。)
Private Sub Worksheet_Activate()
With ComboBox1
.AddItem "Paris"
End With
End Sub
或者,您可以将它放在标准模块中,并在需要时调用它:(这是我的首选方法,但我会使用数据验证,因为它更易于维护。)
Sub LoadCombo()
With Sheet1.ComboBox1
.AddItem "Paris"
End With
End Sub
推荐阅读
- xslt - 如何在DITA OT中进行html转换时根据章节创建文件夹并移动该文件夹下的所有关联文件
- python - Python 的 getstate() 实际上是什么意思
- python - bash + 如何从 rpm 捕获版本
- web-scraping - 网络抓取是否合法?
- quickblox - QuickBlox 是否支持华为设备?
- java - JPA Query Spring 的异常
- paypal - 找不到“付款前创建”方法(OctoberCms 的 Lovata Paypal Shopaholic 插件)
- python - 从 PCollection 中提取常量值
- c++ - 在 C++ 中填充缓冲区
- java - 带有 AWS EC2 测试容器的 moto-server docker 映像