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,那么这时候,程序的执行是有问题的,可以把这多个语句连接起来放到一个过程或者函数里面去。

转载于:https://www.cnblogs.com/tomin/archive/2010/03/30/Excel_vba_series5.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值