伊莉討論區
標題:
excel VBA 迴圈更改控件名稱
[打印本頁]
作者:
t0020497
時間:
2018-7-7 12:01 AM
標題:
excel VBA 迴圈更改控件名稱
請問,在excel VBA裡,我試著拉出10個Commandbutton
預設名稱為Commandbutton1~Commandbutton10
如果要改名子~寫成Commandbutton1.caption="xxx"之類的
,但太多個一個一個寫很麻煩
想利用迴圈一次性直接寫成Commandbutton1.caption=1
Commandbutton2.caption=2....以下類推
但都會顯示異常
是否Commandbutton這個控件,無法使用迴圈控制呢?
是否有精通的大德,可以教導
謝謝
作者:
天蓬元帥
時間:
2018-7-7 09:48 PM
本帖最後由 天蓬元帥 於 2018-7-7 09:48 PM 編輯
因為不知道最後你的用意在哪,如果只是單純過程會用到
有一個不是辦法的辦法....先用迴圈寫出Commandbutton1.caption="XXX"的程式碼
之後再匯入(或貼上就好)
Sub Macro2()
For i = 1 To 10
Sheets("123").Cells(i, 1) = "Commandbutton" & i & ".caption=" & "XXX"
Next i
End Sub
作者:
t0020497
時間:
2018-7-8 07:14 AM
天蓬元帥 發表於 2018-7-7 09:48 PM
因為不知道最後你的用意在哪,如果只是單純過程會用到
有一個不是辦法的辦法....先用迴圈寫出Commandbutton ...
謝謝 我試試看
其實主要目的是想用變數控制控件的名稱而已
作者:
tryit244178
時間:
2018-7-8 10:45 AM
本帖最後由 tryit244178 於 2018-7-8 04:06 PM 編輯
記得以前VB6有個控制項的物件可以用,不知VBA有沒有…試試這個
For i = 1 To 3
Controls("CommandButton" & i).Caption = "Test" & i
Next i
複製代碼
作者:
天蓬元帥
時間:
2018-7-8 03:16 PM
一樣顯示物件不支援此屬性或方法
網路爬文還沒找到解答
另外後來想想,其實也不用用迴圈,EXCEL直接公式拉就好 冏
作者:
Waroger
時間:
2018-7-10 10:46 PM
Dim a As Object, i As Integer
On Error Resume Next
For Each a In ActiveSheet.OLEObjects
If TypeName(a.Object) = "CommandButton" Then
If Left(a.Object.Caption, 13) = "CommandButton" Then
a.Object.Caption = "Test" & i
i = i + 1
End If
End If
Next
複製代碼
歡迎光臨 伊莉討論區 (http://a401.file-static.com/)
Powered by Discuz!