返回列表 上一主題 發帖

[發問] 如何刪除控制項

[發問] 如何刪除控制項

請問若我是以OLEObjects.Add方法增加多個不同群組的選項按鈕,如果我要刪除其中某一個群組,該用什麼方法呢??
寶寶

回復 1# caichen3


    Shapes.Item(1).Delete
    item(1) 群組一

   妳這個問題應該跟妳之前問的問題延伸出來的
學習才能提升自己

TOP

選項按鈕是以vba程式的方式加入,右邊的按鈕是以[開發人員]/[插入]/[active X 按制項]的方式加入,
若我有5組選項按鈕,要刪除GroupName=4,程式碼如下:

Private Sub CommandButton5_Click()
   ActiveSheet.Shapes.Item(4).Delete
End Sub

當我執行時,結果便會將右邊的按鈕刪除,是為什麼呢?

123.JPG (67.74 KB)

123.JPG

寶寶

TOP

回復 3# caichen3
  1. Private Sub CommandButton5_Click()
  2.     Dim E As Object
  3.     For Each E In ActiveSheet.OLEObjects
  4.         If E.Name Like "OptionButton*" Then
  5.             If E.Object.GroupName = 4 Then E.Delete
  6.         End If
  7.     Next
  8. End Sub
複製代碼

TOP

本帖最後由 Hsieh 於 2012-3-26 16:04 編輯

回復 3# caichen3


    以你的圖片上所顯示的按鈕標題字串規則可利用題號來區別
  1. Sub Del_Opt()
  2. Dim k%
  3. k = InputBox("欲刪除的群組", , 4)
  4. For Each ob In ActiveSheet.OLEObjects
  5. If ob.progID = "Forms.OptionButton.1" Then
  6.    If Val(ob.Object.Caption) = k Then ob.Delete '題號與k值相同就刪除
  7. End If
  8. Next
  9. End Sub
複製代碼
學海無涯_不恥下問

TOP

感謝各位大大的回覆喔
寶寶

TOP

本帖最後由 caichen3 於 2012-3-27 17:38 編輯

請問各位大大
我有5項需求陳述(圖1),當我按下右邊"刪除"按鈕,刪除第4項需求陳述,圖畫呈現如圖2,若希望將圖2下面選項按鈕依序往上排列該如何呢??
以下是我的程式碼:
rivate Sub CommandButton5_Click()
gyou = Selection.Row
ActiveSheet.Rows(gyou).ClearContents
Range("I1").Value = Range("I1").Value - 1
TMMPA = Range("I1").Value
aaa = Chr(65)
ccc = Chr(67)
Dim yyy As String
Dim XXX As String
Dim k As Integer
Dim ob As Object

For I = 2 To 100
XXX = I
Range(aaa + XXX).Value = ("")
Range(ccc + XXX).Value = ("")
Next
ActiveSheet.Range("A2:H200").Borders.LineStyle = XILinestyleNone
ActiveSheet.Range("A2:H200").Interior.ColorIndex = xlColorIndexNone

For R = 1 To TMMPA
yyy = R + 1
Range(aaa + yyy).Value = R
Range(ccc + yyy).Value = R
Next
ActiveSheet.Range("A2:H" + yyy).Borders.LineStyle = xlContinuous
ActiveSheet.Range("A2:H" + yyy).Borders(xlEdgeBottom).Weight = xlThick
ActiveSheet.Range("A2:H" + yyy).Borders(xlEdgeRight).Weight = xlThick
ActiveSheet.Range("A2:H" + yyy).Borders(xlEdgeLeft).Weight = xlThick
ActiveSheet.Range("A2:A" + yyy).Interior.ColorIndex = 15

k = gyou - 1
For Each ob In ActiveSheet.OLEObjects
  If ob.Name Like "OptionButton*" Then
    If ob.Object.GroupName = k Then ob.Delete
  End If
Next

End Sub

1.JPG (60.73 KB)

1.JPG

2.JPG (54.29 KB)

2.JPG

寶寶

TOP

回復 7# caichen3

ob.Object.GroupName = k
但是你在建立選項按鈕時給他的GroupName是只有數字嗎?
學海無涯_不恥下問

TOP

嗯~我後來將每個選項按鈕的GroupName都改為數字
寶寶

TOP

回復 9# caichen3
把檔案附上才能了解問題所在
學海無涯_不恥下問

TOP

        靜思自在 : 有願放在心裡,沒有身體力行,正如耕田不播種,皆是空過因緣。
返回列表 上一主題