Excel ActiveX 简介—常用控件-----ComboBox
由于工作一直都比较忙,没有来的及 及时发博客,今天来看看,发现,这个系列还没弄完。接着来~
常用空间有Button, checkbox, combo box, list box, textbox, option button, 如果了解C# 控件的使用方法的话,那么这个是一样的用。以下代码主要是从某个sheet中获取某一列不重复的数据,填充到combo box 中
Sub InitComboBox (table, list As ComboBox) '' Init ComboBox
list.clear
Dim sheet As Worksheet
Set sheet = Sheets(table)
Dim used As Range
Set used = sheet.UsedRange
Dim rowcount As Long
Dim rowcontent As Variant
rowcount = used.Rows.count
rowcontent = sheet.cells(startUsedRow, startUsedCol)
list.AddItem rowcontent
For i = startUsedRow + 1 To rowcount Step 1
rowcontent = sheet.cells(i, startUsedCol)
If IsInComBoxContent(rowcontent, list) = False Then list.AddItem rowcontent
Next i
End Sub
'' Judge whether the value found in the excel is in Combobox
Private Function IsInComBoxContent(data, list As ComboBox) As Boolean
IsInComBoxContent = False
For i = 0 To list.ListCount - 1 Step 1
If data = list.list(i) Then
IsInComBoxContent = True
Exit For
End If
Next i
End Function
在这里用到了:
List.list(i) :获取某个指定的第i个数据
List.add 方法 添加到list 里面去
如果在使用的过程中,遇到问题,可以去往上多查点资料。
http://www.51vba.com/list.aspx?cid=39
在这里顺便提一下:if…then…else 的使用中遇到的问题,一般then 后面紧跟的一个语句或者一个函数,或者一个过程,而不能是多个串行执行的语句。例如上面的语句中,
If data = list.list(i) Then
IsInComBoxContent = True
Exit For
End If
如果在 IsInComBoxContent = True 还有其他语句,而不是exit,那么这时候,程序的执行是有问题的,可以把这多个语句连接起来放到一个过程或者函数里面去。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· 展开说说关于C#中ORM框架的用法!
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?