返回列表 上一主題 發帖

自動填滿選項按鈕

自動填滿選項按鈕

請問
A1輸入資料的欄位,B1:F1有五個選項按鈕,若我想在A欄中有被輸入資料的儲存格中(A1:Ax),B1:Bx和C1:Cx和D1:Dx和E1:Ex和F1:Fx自動會出現選項按鈕該如何??謝謝!
寶寶

  1. Sub ex()
  2. ActiveSheet.OLEObjects.Delete
  3. For Each a In Range("A:A").SpecialCells(xlCellTypeConstants)
  4.    For i = 1 To 5
  5.    With a.Offset(, i)
  6.       ActiveSheet.OLEObjects.Add ClassType:="Forms.OptionButton.1", _
  7.          Left:=.Left, Top:=.Top, Width:=.Width, Height:=.Height
  8.    End With
  9.    Next
  10. Next
  11. End Sub
複製代碼
回復 1# caichen3
學海無涯_不恥下問

TOP

本帖最後由 caichen3 於 2012-3-16 21:34 編輯

非常感謝Hsieh喔:)
如果希望能以5個optionbutton做為一個群組呢??
寶寶

TOP

回復 3# caichen3
  1. Sub ex()
  2. ActiveSheet.OLEObjects.Delete
  3. For Each a In Range("A:A").SpecialCells(xlCellTypeConstants)
  4.    s = 0
  5.    For i = 1 To 5
  6.    With a.Offset(, i)
  7.       Set ob = ActiveSheet.OLEObjects.Add(ClassType:="Forms.OptionButton.1", _
  8.          Left:=.Left, Top:=.Top, Width:=.Width, Height:=.Height)
  9.          ob.Object.GroupName = "群組 " & n
  10.    End With
  11.    Next
  12.   n = n + 1
  13. Next
  14. End Sub
複製代碼
學海無涯_不恥下問

TOP

非常感謝
寶寶

TOP

本帖最後由 hugh0620 於 2012-3-19 15:11 編輯

回復 4# Hsieh


    H大大這一招好~  以前沒想過~  已後可以省很多時間在設定Button的時間~
   感恩唷~
學習才能提升自己

TOP

我在工作表新增一個按鈕,在按鈕裡輸入H大大的程式碼,執行後按鈕便消失,是不是使用OLEObject方法便無法以手動方式製作按鈕呢??
寶寶

TOP

回復 7# caichen3


    ctiveSheet.OLEObjects.Delete
就已經將所有控制項刪除
目的在怕重複執行程式,造成控制項重複新增
  1. Sub ex()
  2. Dim ob As OLEObject
  3. For Each ob In ActiveSheet.OLEObjects
  4.    If ob.progID = "Forms.OptionButton.1" Then ob.Delete
  5. Next
  6. For Each a In Range("A:A").SpecialCells(xlCellTypeConstants)
  7.    s = 0
  8.    For i = 1 To 5
  9.    With a.Offset(, i)
  10.       Set ob = ActiveSheet.OLEObjects.Add(ClassType:="Forms.OptionButton.1", _
  11.          Left:=.Left, Top:=.Top, Width:=.Width, Height:=.Height)
  12.          ob.Object.GroupName = "群組 " & n
  13.    End With
  14.    Next
  15.   n = n + 1
  16. Next
  17. End Sub
複製代碼
學海無涯_不恥下問

TOP

本帖最後由 caichen3 於 2012-3-20 18:35 編輯

感謝H大大的回覆!!還有一個問題請教你,
OLEobjects方法增加的optionbutton,每個都有編號,每次執行按鈕的編號並不是依序排列,
因為我要設定每個按鈕的標題文字,要如何以變數I來控制並設定這5個按鈕的標題文字??
寶寶

TOP

回復 9# caichen3
  1. Sub ex()
  2. Dim ob As OLEObject
  3. For Each ob In ActiveSheet.OLEObjects
  4.    If ob.progID = "Forms.OptionButton.1" Then ob.Delete
  5. Next
  6. n = 0
  7. For Each a In Range("A:A").SpecialCells(xlCellTypeConstants)
  8.    For i = 1 To 5
  9.    mystr = "選項" & n & "-" & i
  10.    With a.Offset(, i)
  11.       Set ob = ActiveSheet.OLEObjects.Add(ClassType:="Forms.OptionButton.1", _
  12.          Left:=.Left, Top:=.Top, Width:=.Width, Height:=.Height)
  13.          ob.Object.Caption = mystr
  14.          ob.Object.GroupName = "群組 " & n
  15.    End With
  16.    Next
  17.   n = n + 1
  18. Next
  19. End Sub
複製代碼
學海無涯_不恥下問

TOP

        靜思自在 : 【時日莫空過】一個人在世間做了多少事,就等於壽命有多長。因此必須與時間競爭,切莫使時日空過。
返回列表 上一主題