返回列表 上一主題 發帖

自動填滿選項按鈕

本帖最後由 caichen3 於 2012-3-21 18:06 編輯

感謝h大大:)
請教Left:=.Left, Top:=.Top, Width:=.Width, Height:=.Height是什麼意思呢?
若我在最後插入新的一列,並也希望在該列有自動新增上述所說的五個按鈕該如何呢(變數i=1 to 5) ??
寶寶

TOP

回復 11# caichen3

  讓OptionButton的大小跟你儲存格的size大小一樣大
學習才能提升自己

TOP

本帖最後由 caichen3 於 2012-3-21 18:25 編輯

如何設定新增按鈕的位置呢??假設在某列的d欄至h欄中 放置5個按鈕
b為新插入的列
For i = 1 To 5
With a.Offset(, i)
      Set ob = ActiveSheet.OLEObjects.Add(ClassType:="Forms.OptionButton.1")
        ob.Object.Left = ["D+b:" & "H+b"].Left
        ob.Object.Top = ["D+b:" & "H+b"].Top
        ob.Object.Width = ["D+b:" & "H+b"].Width
        ob.Object.Height = ["D+b:" & "H+b"].Height
   End With
   Next

程式碼出錯,可以幫我看看嗎?感謝
寶寶

TOP

回復 13# 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. 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.Top = .Top + 2       '按鈕在每個儲存格的距離top的距離
  13.          ob.Left = .Left + 10    '按鈕在每個儲存格的距離left的距離
  14.          ob.Object.GroupName = "群組 " & n
  15.    End With
  16.    Next
  17.   n = n + 1
  18. Next
  19. End Sub
複製代碼
學習才能提升自己

TOP

如何設定新增按鈕的位置在某列的第d欄至h欄中 放置5個按鈕
(b為新插入的列)
For i = 1 To 5
With a.Offset(, i)
      Set ob = ActiveSheet.OLEObjects.Add(ClassType:="Forms.OptionButton.1")
        ob.Object.Left = ["D+b:" & "H+b"].Left
        ob.Object.Top = ["D+b:" & "H+b"].Top
        ob.Object.Width = ["D+b:" & "H+b"].Width
        ob.Object.Height = ["D+b:" & "H+b"].Height
   End With
   Next

程式碼出錯,可以幫我看看嗎?感謝
寶寶

TOP

回復 15# caichen3

不知所云,甚麼叫做b是插入的列?
上傳檔案說明插入前後的狀況
學海無涯_不恥下問

TOP

插入新的一列,並於該列中第d欄至h欄中放置5個選項按鈕,以下是我的部份程式碼,請大大幫我看看哪裡出錯嗎:

b = Range("I1").Value  
ActiveSheet.Rows(b).Insert   '於第b列插入新的一列
For Each a In Range("C:C").SpecialCells(xlCellTypeConstants)
   For i = 1 To 5
    Select Case i
        Case "1"
        mystr = "非常不重要" & "(" & i & ")"
        Case "2"
        mystr = "不重要" & "(" & i & ")"
        Case "3"
        mystr = "普通" & "(" & i & ")"
        Case "4"
        mystr = "重要" & "(" & i & ")"
        Case "5"
        mystr = "非常重要" & "(" & i & ")"
    End Select
   
   With a.Offset(, i)
      Set ob = ActiveSheet.OLEObjects.Add(ClassType:="Forms.OptionButton.1")
          ob.Object.Left = ["D+b:" & "H+b"].Left
          ob.Object.Top = ["D+b:" & "H+b"].Top
          ob.Object.Width = ["D+b:" & "H+b"].Width
          ob.Object.Height = ["D+b:" & "H+b"].Height
          ob.Object.Caption = mystr
   End With
   Next
Next
寶寶

TOP

回復 17# caichen3

你的程式碼來看
在b列插入新的一列,與新增控制項有何關係?
再猜一次看看,可能是在下移I1列的位置插入控制項吧
再無法描述清楚你的需求,可能就無能為力了
  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. a.Offset([I1]).EntireRow.Insert
  8.    For i = 1 To 5
  9.    mystr = IIf(i = 1, "非常不重要", IIf(i = 2, "不重要", IIf(i = 3, "普通", IIf(i = 4, "重要", "非常重要"))))
  10.    With a.Offset([I1], 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. Next

  18. End Sub
複製代碼
學海無涯_不恥下問

TOP

本帖最後由 hugh0620 於 2012-3-22 11:06 編輯

回復 15# caichen3


    不要讓H大大或其他人猜測你要的結果~
    可以做一個圖例或檔案範本~
    將你要的結果~ 呈現出來~ 比較好處理唷~
學習才能提升自己

TOP

版主請教您:
我使用了   開發人員->插入->按鈕(表單控制項) , 一個名為開啟鈕,另一個為關閉鈕。
請教您,當我想要在 EXCEL 開啟時,開啟鈕為隱藏(Hide)模式,當我選按關閉鈕時,
開啟鈕就顯示出來(Enable),關閉鈕就同時變更為隱藏(Hide)模式,反之亦然。
因為我在VBA編輯器內,不知要如何得知這些按鈕的Object Name,以及能否使用
Enable或Disable語法,勝至還想將'開啟'字句改為其他字語或變更顏色等等,在此謝謝您了!

TOP

        靜思自在 : 能付出愛心就是福,能消除煩惱就是慧。
返回列表 上一主題