- 帖子
- 16
- 主題
- 3
- 精華
- 0
- 積分
- 25
- 點名
- 0
- 作業系統
- winXP
- 軟體版本
- 2007
- 閱讀權限
- 10
- 性別
- 男
- 註冊時間
- 2013-8-9
- 最後登錄
- 2013-11-12
|
小弟現在要做一個新增checkbox新增及同時改名之commonbottom
並且在按的同時 刪除舊有的checkbox 並新增 新的checkbox
以 第三列為listname
不過在第二次按下此bottom時會產生無法盡數刪除情形
會留下第一個checkbox無法更名 造成後面之checkbox名字皆錯
求解!! 感激不盡
CK刪除為刪除現有ckbox
函式如下
Sub CK刪除()
Dim CK As Object
For Each CK In ActiveSheet.OLEObjects
If CK.Name Like "CheckBox*" Then
CK.Delete
End If
Next
End Sub
以下為程式碼
Private Sub CommandButton1_Click() '資料篩選
Call CK刪除
Range("A4:K4").Select
Range("A4:K4", Selection.End(xlDown)).Select
If Selection.Count > 999999 Then '不接受低於二筆資料處理
MsgBox ("資料表輸入資料太少,請確認。")
Exit Sub
End If
'2013/07/31 Test
Range("A3").Select
Range("A3", Selection.End(xlToRight)).Select
ListCount = Selection.Columns.Count
ComboBox1.Clear
ReDim listname(ListCount - 1) As String
For i = 0 To ListCount - 1
If i <= 25 Then
listname(i) = Range(Chr(65 + i) & "3").Text
Else
listname(i) = Range("A" & Chr(65 + i - 25) & "3").Text
End If
ComboBox1.AddItem listname(i)
Next i
'新增checkbox
For i = 0 To ListCount - 1
OLEObjects.Add(ClassType:="Forms.CheckBox.1", Link:=False, _
DisplayAsIcon:=False, Left:=0 + 93.5 * i, Top:=126, Width:=90, Height:=22.5).Select
Next i
'checkbox改名
ReDim listname1(ListCount) As String
For i = 1 To ListCount
If i <= 25 Then
listname1(i) = Range(Chr(64 + i) & "3").Text
Else
listname1(i) = Range("A" & Chr(64 + i - 25) & "3").Text
End If
Next i
For i = 1 To ListCount
Sheets("資料").OLEObjects("CheckBox" & i).Object.Caption = listname1(i)
Next i |
|