返回列表 上一主題 發帖

[發問] 如何大量建立COMBOBOX 表單方式

回復 1# lichang
  1.     Dim ar
  2.     '有幾個填幾個
  3.     ar = Array("aiSV4", _
  4.                 "aiSV20", _
  5.                 "aiSV40", _
  6.                 "aiSV80", _
  7.                 "aiSV160")
  8.                     
  9.     'combobox1 to combobox20
  10.     For i = 1 To 20
  11.         Controls("ComboBox" & i).List = ar
  12.     Next
複製代碼
表達不清、題意不明確、沒附檔案格式、沒有討論問題的態度~~~~~~以上愛莫能助。

TOP

回復 6# lichang
如果要共用 Click 的觸發行為(就是共用click event)
就要像 #5樓這樣 , 改用物件類別模組喔~
表達不清、題意不明確、沒附檔案格式、沒有討論問題的態度~~~~~~以上愛莫能助。

TOP

回復 6# lichang
下面是一簡單例子
form1.JPG
UserForm1 程式碼
  1. Private Temp() As Class1

  2. Private Sub UserForm_Initialize()
  3.     Dim i As Long
  4.     For i = 1 To 4
  5.         ReDim Preserve Temp(i)
  6.         Set Temp(i) = New Class1
  7.         Temp(i).InitialControl Controls("ComboBox" & i)
  8.     Next
  9. End Sub
複製代碼
新增物件類別模組 Class1
  1. Public WithEvents ComboBox As MSForms.ComboBox

  2. Private Sub ComboBox_Change()
  3.     MsgBox ComboBox.Value    'change 動作
  4. End Sub

  5. Public Sub InitialControl(ByRef oControl As MSForms.ComboBox)
  6.     Set ComboBox = oControl
  7.     ComboBox.List = Array("test1", "test2", "test3", "test4")
  8. End Sub
複製代碼
表達不清、題意不明確、沒附檔案格式、沒有討論問題的態度~~~~~~以上愛莫能助。

TOP

回復 10# lichang
看不懂你的意思,請附圖或檔案說明一下,謝謝。
表達不清、題意不明確、沒附檔案格式、沒有討論問題的態度~~~~~~以上愛莫能助。

TOP

回復 12# lichang
不確定是不是你要的 : 每個ComboBox 都有一個對應的儲存格 , 每次ComboBox選擇改變時,對應的儲存格值也改變。

因為沒程式碼我直接用 8#的例子來修改
UserForm1 程式碼
  1. Private Temp() As Class1

  2. Private Sub UserForm_Initialize()
  3.     Dim i As Long
  4.     For i = 1 To 4
  5.         ReDim Preserve Temp(i)
  6.         Set Temp(i) = New Class1
  7.         Temp(i).InitialControl Controls("ComboBox" & i), ActiveSheet.Cells(1799 + i, "B")
  8.     Next
  9. End Sub
複製代碼
新增物件類別模組 Class1
  1. Public WithEvents ComboBox As MSForms.ComboBox
  2. Private linkCell As Range

  3. Private Sub ComboBox_Change()
  4.     linkCell.Value = ComboBox.Value
  5. End Sub

  6. Public Sub InitialControl(ByRef oControl As MSForms.ComboBox, ByRef rngLinkCell As Range)
  7.     Set ComboBox = oControl
  8.     ComboBox.List = Array("test1", "test2", "test3", "test4")
  9.     Set linkCell = rngLinkCell
  10. End Sub
複製代碼
表達不清、題意不明確、沒附檔案格式、沒有討論問題的態度~~~~~~以上愛莫能助。

TOP

回復 12# lichang
不過通常會是透過一個按鈕去觸發
再一次性把表單上的資料更新到工作表
而不是透過Combobox change event
這樣也比較簡單
  1. Private Sub CommandButton1_Click()
  2.     With ActiveSheet.Range("B1799")
  3.         For i = 1 To 4
  4.             .Cells(i, 1).Value = Controls("ComboBox" & i).Value
  5.         Next
  6.     End With
  7. End Sub
複製代碼
表達不清、題意不明確、沒附檔案格式、沒有討論問題的態度~~~~~~以上愛莫能助。

TOP

回復 15# lichang
書是看得不多,最有收穫的是
Professional Excel Development 2nd
但這本不是給入門的人看的,入坑前三思。

最主要是常寫,遇到問題上網google,
要學會下對關鍵字,八成都有答案。
多數答案都會連結到這個論壇或ExcelHome(所以才會加入這論壇)
中文找不到,改英文關鍵字,多半問題會在StackOverflow得到解答

寫多了,遇過問題就多,解決過的問題也就多了,如此而已。
表達不清、題意不明確、沒附檔案格式、沒有討論問題的態度~~~~~~以上愛莫能助。

TOP

        靜思自在 : 好事要提得起,是非要放得下,成就別人即是成就自己。
返回列表 上一主題