返回列表 上一主題 發帖

[發問] 如何將UserForm中的ComboBox變成使用者功能?

本帖最後由 mark15jill 於 2012-10-25 14:44 編輯
以圖示舉例~


圖上的CheckBox皆屬於變動居多~
我想把CheckBox改成ComboBox~
方便修改變動資料~如何將 ...
av8d 發表於 2012-10-25 13:48


小弟的作法
如果今天有 表單A (例如 圖)  表單B(空白)
我會先將 表單A 所有內容(Caption ) 及 名稱 (Name) 匯出後
由 表單B 去接收 並列出 判斷
例如
表單A 之Checkbox 匯出
A1~ A10 = checkbox1.name ~ checkbox10.name  
B1~ B10 =  checkbox1.caption ~ checkbox10.caption

表單B 之 Combobox接收
list(1 to 10)  = A1~ A10
或 矩陣
List( 1 to 10  ,  1 to 10) = ( A1 ~ A10) , (B1 ~ B10)

  多做多想多學習,少看少錯少迷途

  多做=多多練習,多多編寫。
  多想=想想為什麼人家程式要那樣寫,如果換成自己,又會怎寫。
  多學習=學習人家的發問並解答,學習人家的寫法

  少看=只看不做也枉然

TOP

回復 3# av8d

可以 用 r  和 r=r+1..

以下是一種方法.
  1. 'userform1
  2. Private Sub CommandButton1_Click()
  3.     For uu = 1 To 25
  4.         With Controls("Checkbox" & uu)
  5.             .Caption = Cells(uu + 1, 1)
  6.         End With
  7.     Next
  8.     UserForm1.Hide
  9.     UserForm2.Show
  10. End Sub

  11. Private Sub UserForm_Initialize()
  12.     Dim mycheckbox1 As MSForms.CheckBox
  13.     With UserForm1
  14.         .Width = 400
  15.         .Height = 400
  16.         .StartUpPosition = 2
  17.     End With
  18.     For soa = 1 To 400 Step 80
  19.         For sob = 1 To 400 Step 80
  20.             With UserForm1.Controls.Add("forms.checkbox.1")
  21.                 .Top = 10 + soa
  22.                 .Left = 10 + sob
  23.                 .Height = 50
  24.                 .Width = 50
  25.                 .Caption = .Name
  26.             End With
  27.         Next
  28.     Next

  29. End Sub
複製代碼
  1. 'userform2
  2. Private Sub UserForm_Initialize()
  3.     Dim mycombobox1 As MSForms.ComboBox
  4.     With UserForm2
  5.         .Height = 400
  6.         .Width = 400
  7.         .StartUpPosition = 2
  8.     End With
  9.     With UserForm2.Controls.Add("forms.combobox.1")
  10.         .Height = 40
  11.         .Width = 100
  12.         .Top = 10
  13.         .Left = 10
  14.         For us = 2 To 26
  15.             .AddItem (UserForm1.Controls("checkbox" & us - 1).Caption)
  16.         Next
  17.     End With
  18. End Sub
複製代碼

  多做多想多學習,少看少錯少迷途

  多做=多多練習,多多編寫。
  多想=想想為什麼人家程式要那樣寫,如果換成自己,又會怎寫。
  多學習=學習人家的發問並解答,學習人家的寫法

  少看=只看不做也枉然

TOP

回復  av8d


   找到了一個方法~如下
Private Sub UserForm_Initialize()
CheckBox51.Caption = 工作 ...
av8d 發表於 2012-10-25 14:49



   至於 [c2]的話
可以試用 range("c2") 來使用
因為 [c2] 這方法 小弟比較不熟(羞愧)

  多做多想多學習,少看少錯少迷途

  多做=多多練習,多多編寫。
  多想=想想為什麼人家程式要那樣寫,如果換成自己,又會怎寫。
  多學習=學習人家的發問並解答,學習人家的寫法

  少看=只看不做也枉然

TOP

        靜思自在 : 不要小看自己,因為人有無限的可能。
返回列表 上一主題