返回列表 上一主題 發帖

[發問] ComboBox 增加選項

[發問] ComboBox 增加選項

小弟想請問如何用程式碼寫ComboBox要顯示的值???
而我要顯示的值會先輸入在Excel表單裡提供ComboBox顯示     例如:A1:A10
再來就是要顯示的值會增加     例如:A1:A20
要如何讓ComboBox也自動的增加???

回復 13# 小華
控制項的清單=儲存格(範圍)的值或是陣列
  如Year01.List =Range(t4:t20).Value   
  如Year01.List =array("a","b","c","d","e")
感恩的心......(在麻辣家族討論區.用心學習會有進步的)
但資源無限,後援有限,  一天1元的贊助,人人有能力.

TOP

回復 12# GBKEE


謝謝先進!!   
   
把程式碼寫在Enter事件,值就可以顯示出來了

另外想請問版主
   
Year01.List = x.Range("t4", x.[t4].End(xlDown)).Value    這句程式碼代表甚麼意思??
   
因為我有參考別人的寫法   他是用迴圈的寫法加上Additem

TOP

本帖最後由 GBKEE 於 2013-5-26 07:15 編輯

回復 11# 小華

  1. Private Sub Year01_Change()
  2.     Set x = Sheets("Base")
  3.     For I = 4 To 20
  4.         If x.Cells(I, 20) <> "" Then
  5.             Year01.AddItem x.Cells(I, 20)
  6.         End If     '***你對調了**
  7.      Next I        '***你對調了**
  8. End Sub
複製代碼
  附檔表單程式碼如要可以使用   x.[t4].End(xlDown)
不加 x.  [t4]是ActiveSheet(使用中)工作表的儲存格,無法結合"Base"的儲存格與ActiveSheet的儲存格
如 "Base"是ActiveSheet時 就可以不加 x.  
Private Sub Year01_Change()
Set x = Sheets("Base")
ComboBox1.List = x.Range("t4", x.[t4].End(xlDown)).Value
'** ComboBox1 *** 是否要改成 Year01
End Sub

1#說 要如何讓ComboBox也自動的增加
是希望點選Year01可以載入所有的年度資料供選擇,可如下
Enter、Exit 事件
Enter 主要發生在一個控制項,從同一表單上的另一個控制項取得駐點之前;Exit 會在一個控制項失去駐點時發生。
  1. Private Sub Year01_Enter()
  2.     Set x = Sheets("Base")
  3.     Year01.List = x.Range("t4", x.[t4].End(xlDown)).Value
  4. End Sub
複製代碼
感恩的心......(在麻辣家族討論區.用心學習會有進步的)
但資源無限,後援有限,  一天1元的贊助,人人有能力.

TOP

回復 9# GBKEE


    有試過迴圈的寫法  可是值還是顯示不出來  不知道問題點在哪......
  1. Private Sub Year01_Change()
  2. Set x = Sheets("Base")
  3. For I = 4 To 20
  4.      If x.Cells(I, 20) <> "" Then
  5.      Year01.AddItem x.Cells(I, 20)
  6.      Next I
  7.      End If
  8. End Sub
複製代碼

TOP

回復 9# GBKEE

OT DataBase1.rar (31.06 KB)

TOP

回復 8# 小華
請附檔看看
感恩的心......(在麻辣家族討論區.用心學習會有進步的)
但資源無限,後援有限,  一天1元的贊助,人人有能力.

TOP

回復 7# GBKEE


    用了還是不會顯示值.......
   
   我找了超板之前的定義名稱方法    就會顯示值了

TOP

回復 5# 小華
工作表上的控制項 ComboBox 事件 ComboBox1_GotFocus()
  1. Private Sub ComboBox1_GotFocus()
  2.     ComboBox1.List = Range("A1", [A1].End(xlDown)).Value
  3. End Sub
複製代碼
表單上的控制項 ComboBox 事件 ComboBox1_Enter()
  1. Private Sub ComboBox1_Enter()
  2.     ComboBox1.List = Range("A1", [A1].End(xlDown)).Value
  3. End Sub
複製代碼
感恩的心......(在麻辣家族討論區.用心學習會有進步的)
但資源無限,後援有限,  一天1元的贊助,人人有能力.

TOP

回復  GBKEE
    程式碼輸入進去後還是無法顯示值
   A1:A10的值例如是 1、2、3.....10
   後續 ...
小華 發表於 2013-5-23 21:42

因為你要在每次增加資料時都要變更ComboBox選單內的資料,
所以試著將程式放在 Change 事件處理程序內 :
  1. Private Sub Worksheet_Change(ByVal Target As Range)
  2.   ComboBox1.List = Range("A1", [A1].End(xlDown)).Value
  3. End Sub
複製代碼

TOP

        靜思自在 : 不怕事多,只怕多事。
返回列表 上一主題