一区二区三区日韩精品-日韩经典一区二区三区-五月激情综合丁香婷婷-欧美精品中文字幕专区

分享

vba combobox添加下拉內(nèi)容

 滿(mǎn)泉ca85upjdlw 2023-02-05 發(fā)布于內(nèi)蒙古

學(xué)習(xí)資源:《Excel VBA從入門(mén)到進(jìn)階》第57集 by蘭色幻想


本節(jié)講述列表框和組合框。

如下圖所示,列表框,顧名思義,用于提供一組條目(數(shù)據(jù)項(xiàng)),用戶(hù)可以用鼠標(biāo)選擇其中一個(gè)或者多個(gè)條目,但是不能直接編輯列表框的數(shù)據(jù)。而組合框是文字框+下拉菜單的組合形式,用戶(hù)可以從下拉菜單選擇條目。

eb36748aed44430b1185ec80283949eb.png

一、組合框的顯示

  1. 顯示多列內(nèi)容

rowsource屬性:可以從工作表中導(dǎo)入數(shù)據(jù) 。

Columnheads屬性:顯示列標(biāo)題,只在引用工作表數(shù)據(jù)源時(shí)才有效,而且數(shù)據(jù)源不能包括標(biāo)題行。

ColumnCount屬性:設(shè)置組合框可顯示的列數(shù)。

TextColumn屬性:選取多列時(shí)顯示第N列的內(nèi)容。

BoundColumn屬性:指定返回第N列的值,作為窗體的數(shù)值。

e7045bbe309d770481f5650737fc19f0.png
工作表數(shù)據(jù)
  1. Private Sub CommandButton1_Click()
  2. '點(diǎn)擊初始化數(shù)據(jù)
  3. 商品.RowSource = 'sheet3!A2:C5' '導(dǎo)入工作表數(shù)據(jù)(不用包含列標(biāo)題)
  4. 商品.ColumnCount = 3
  5. 商品.ColumnHeads = True '顯示列標(biāo)題
  6. 商品.TextColumn = 1 '組合框中顯示第1列,即商品的名稱(chēng)
  7. 商品.BoundColumn = 2 '選取后第2列為作為控件的默認(rèn)值,即商品的數(shù)量
  8. End Sub
  9. Private Sub 商品_Change()
  10. '商品窗體數(shù)值變化
  11. If 商品.ListIndex <> -1 Then '組合框沒(méi)選取時(shí)listindex會(huì)返回-1
  12. TextBox1 = 商品.Value
  13. 'TextBox1要顯示商品數(shù)量,上面已經(jīng)用BoundColumn把商品控件的默認(rèn)值設(shè)定第2列的值
  14. TextBox2 = 商品.List(商品.ListIndex, 2)
  15. 'TextBox2要顯示商品單價(jià),List即數(shù)據(jù)源的數(shù)值,以第一列作為索引0,顯示索引后第二個(gè)的值
  16. End If
  17. End Sub
bb7ba5e4ec070dbce8967a6426e97e6b.gif

2. 獲得焦點(diǎn)自動(dòng)打開(kāi)下拉列表

  1. Private Sub 商品_Enter()
  2. 商品.DropDown
  3. End Sub

設(shè)置了這一段,點(diǎn)控件空白處就會(huì)顯示下拉列表,沒(méi)設(shè)置就只能點(diǎn)旁邊的按鈕。

15fd83aaf15e9632de75909f40dc19d8.png

3. 下拉列表顯示最大行數(shù)

ListRows屬性設(shè)置,不含標(biāo)題行。

a6df40a2e2d45b87cf1824c35134a816.png

4. 組合框下拉按鈕的圖標(biāo)

ShowDropButtonWhen 屬性:可以設(shè)置是否顯示下拉按鈕圖標(biāo)。如果寫(xiě)了獲得焦點(diǎn)自動(dòng)打開(kāi)下拉列表的代碼,似乎不設(shè)置也行,但有圖標(biāo)會(huì)比較清晰。

DropButtonStyle 屬性:設(shè)置下拉按鈕的類(lèi)型。

78c503f79b38feaf12f2ba81b005bd3c.png

5. 設(shè)置列寬

ColumnWidths屬性:設(shè)置下拉列表的列寬,可以用三種單位:厘米、磅、英寸。

用分號(hào)隔開(kāi),數(shù)值和單位之間要留一個(gè)空格。

  1. 商品.ColumnWidths = '70 磅;60 磅;67 磅' '以磅為單位
  2. 商品.ColumnWidths = '2 厘米;2 厘米;5 厘米' '以厘米為單位
  3. 商品.ColumnWidths = '2 英寸;2 英寸;3 英寸' '以英寸為單位

二、 組合框的功能

1. 向組合框內(nèi)添加內(nèi)容

有以下四種方法:

① 使用additem方法添加

  1. Private Sub UserForm_Initialize()
  2. 商品.AddItem 'A'
  3. 商品.AddItem 'B'
  4. 商品.AddItem 'C'
  5. End Sub
e64e3714b669ca8562400e5113b70faa.png

② 使用常量數(shù)組添加

  1. Private Sub UserForm_Initialize()
  2. 商品.List = Array('A', 'B', 'C')
  3. End Sub

③ 使用VBA數(shù)組添加

  1. Private Sub UserForm_Initialize()
  2. Dim arr(1 To 3), x
  3. For x = 1 To 3
  4. arr(x) = Cells(x + 1, 'A') '導(dǎo)入單元格A2,A3,A4的值,也就是ABC,見(jiàn)上面工作表截圖。
  5. Next x
  6. 商品.List = arr
  7. End Sub

④ 創(chuàng)建和單元格鏈接

  1. Private Sub UserForm_Initialize()
  2. 商品.RowSource = 'sheet3!A2:A4'
  3. End Sub

2. 刪除指定行RemoveItem

  1. Private Sub CommandButton3_Click()
  2. '刪除指定行
  3. 商品.RemoveItem 1
  4. '刪除選中的行ListIndex屬返回選定的行數(shù),不能刪除rowsourse設(shè)置的填充數(shù)據(jù)
  5. 商品.RemoveItem 商品.ListIndex
  6. End Sub

3. 提取選取的多列內(nèi)容

List(行數(shù),列數(shù)) 

行和列都是從0開(kāi)始算起的。

4. 是否可以輸入列表內(nèi)容以外的內(nèi)容

MatchRequired 屬性值為true時(shí),必須輸入組合框中含有的。如果為false,可以輸入下拉列表中沒(méi)有的數(shù)值。

三、列表框的屬性和方法

大部分屬性和組合框相同,所以就不贅述了,只說(shuō)列表框獨(dú)有的。

1. ListStyle值為0時(shí),樣式為默認(rèn)樣式,無(wú)單選或多選框,如果為1時(shí)則有,0則無(wú)。

36d787332b0d610b347ddea8985a5041.png
默認(rèn)樣式
903497d5a9ad4d853f86c99cf07e8a7a.png
多選框

2. Selected(行數(shù)) 可以判斷列表框中某行是否被選取,可獲取多個(gè)行數(shù),是一個(gè)集合。

  1. Private Sub CommandButton1_Click() '顯示選取的行
  2. Dim x As Integer
  3. For x = 0 To LB1.ListCount - 1
  4. 'Selected是選取的集合
  5. If LB1.Selected(x) = True Then
  6. 'list(行,列)來(lái)表示在列表框中的位置 ,行與列都是從0開(kāi)始
  7. MsgBox x & ' '&LB1.List(x, 0)
  8. End If
  9. Next x
  10. End Sub
a0da122e8123b8f1f7d384b251fc5838.png
選取第一行“界面”,但它的行列從0開(kāi)始,所以顯示的是0。

3. ListCount 屬性:列表框的條目個(gè)數(shù)。(在上例也有使用到)

4. MultiSelect 屬性值為0 只能選一個(gè),1可以用鼠標(biāo)點(diǎn)擊多選或取消,2 需要按Shift或Ctrl才能多選。

2d7a9145e33f92c6b6dd86b5e51c00ad.png

沒(méi)想到這個(gè)專(zhuān)欄停更了這么久還有陸續(xù)的點(diǎn)贊和關(guān)注,不好意思再拖更了……還有23篇,今年內(nèi)一定要把它給完結(jié)了(再次立flag,也歡迎大家催更)。

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶(hù)發(fā)布,不代表本站觀(guān)點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買(mǎi)等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶(hù) 評(píng)論公約

    類(lèi)似文章 更多

    亚洲a级一区二区不卡| 国产精品免费自拍视频| 亚洲国产成人一区二区在线观看| 中文字幕一区二区三区大片| 国产大屁股喷水在线观看视频 | 日韩欧美综合中文字幕 | 亚洲精品成人福利在线| 国产精品午夜视频免费观看| 97精品人妻一区二区三区麻豆| 日本乱论一区二区三区| 国产黑人一区二区三区| 视频在线免费观看你懂的 | 国产女同精品一区二区| 在线视频免费看你懂的| 久久热在线视频免费观看| 国产精品日韩欧美一区二区| 五月激情五月天综合网| 99久久国产精品亚洲| 国产内射一级一片内射高清视频 | 伊人欧美一区二区三区| 好吊色欧美一区二区三区顽频| 午夜视频免费观看成人| 亚洲成人免费天堂诱惑| 暴力三级a特黄在线观看| 欧美人与动牲交a精品| 久久久精品日韩欧美丰满| 中文字幕亚洲精品在线播放| 99久久精品午夜一区二| 国产精品免费福利在线| 少妇熟女精品一区二区三区| 亚洲午夜av久久久精品| 久久国产精品亚州精品毛片| 国产精品亚洲欧美一区麻豆| 久草国产精品一区二区| 午夜福利大片亚洲一区| 亚洲黄色在线观看免费高清| 91亚洲国产成人久久| 国产二级一级内射视频播放| 国产精品超碰在线观看| 日韩在线精品视频观看| 亚洲一区二区久久观看|