AMT0401_Excel中ComboBox的数据自动加载

本文介绍一种打开Excel之后,自动加载下拉列表框数据的方法。网上有介绍采用worksheet_activate事件实现的方法,但是这种方法有一定缺陷,在打开Excel文件后,如果不切换表格,将无法加载数据。
1、术语

ComboBox,ActiveX控件中的组合框,即下拉列表框。之所以不采用“表单控件”,而采用“ActiveX控件”是为了下一步VBA编程的方便。

worksheet_activate,每一个Excel文件被称为“工作簿 workbook”,该文件内的每一张表格被称为“工作表 worksheet”,在互相切换工作表时,工作表就会被激活,worksheet_activate指令变为真[1]

workbook_Open,逻辑同上,文件被打开后触发事件。

AddItem,对ComboBox增加条目的命令[2]

2、正文

在Excel中设置好了下拉列表框,并且已经写入数据,保存文件之后,再次打开,却发现下拉列表框中的数据丢失,无法进行选择,如下图1上部分表示。我想做的是达到图1下半部分的效果。

图1-下拉列表框示意图

 
如图2,在Excel编程界面中,选择ThisWorkbook,在此对象中才能使用workbook_Open命令,如果直接在Sheet中使用是无效的。通过代码直接对Sheet3中的ComboBox进行调用。

图2 NoName
3、代码

参考文献

[1] Excel事件(四)事件顺序[EB/OL]. https://cloud.tencent.com/developer/article/1520280

[2] 组合框(ComboBox)应用之一[EB/OL]. https://baijiahao.baidu.com/s?id=1708286776442338471

AMT0401_Excel中ComboBox的数据自动加载