返回列表 上一主題 發帖

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

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

TOP

回復 11# stillfish00

如以下附圖,當我選擇到第二個選單時,選擇的東西自己建立到B1801,以此類推!!
不好意思,一直麻煩你了!!

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

回復 14# stillfish00

謝謝您的回覆,不過因為實在是太多選單,所以才會想用一次管理的方式做!!
這樣對程式撰寫也比較好管理,還有我使用您第一個建議的方式,已經完成測試,確實是我要的東西
您真是太強了ˊ!!

題外話,請問您這些知識,是要看那些書籍才能知道如何撰寫,方便提供一下嗎??

TOP

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

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

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

TOP

回復 16# stillfish00

謝謝你的解答,我會再努力學習!!
希望以後能不吝澀再指教!!

TOP

        靜思自在 : 手心向下是助人,手心向上是求人;助人快樂,求人痛苦。
返回列表 上一主題