更改/重命名循环内多个按钮上的标题

时间:2018-01-26 05:52:42

标签: excel excel-vba vba

在Excel VBA中,我有15个命令按钮(btn_1, btn_2, ... btn_15),并且在单击单独的命令按钮时尝试删除所有15个按钮中的标题文本。我目前正在使用Me.btn_1.Caption = ""单独删除每个按钮的标题。

如何在没有单独的代码行的情况下删除这些按钮的标题?

1 个答案:

答案 0 :(得分:0)

您可以通过旋转OLEObject来遍历工作表中的每个按钮。

此代码仅重置当前工作表中的标题:

Sub resetButtonCaption()

    Dim btn As OLEObject
    For Each btn In ActiveSheet.OLEObjects
        If TypeName(btn.Object) = "CommandButton" Then
            If btn.Object.Caption Like "*btn*" Then
                btn.Object.Caption = vbNullString
            End If
        End If
    Next

End Sub

此代码将重置每个工作表中的标题:

Sub resetButtonCaption()

    Dim btn As OLEObject, ws As Worksheet

    For Each ws In ThisWorkbook.Worksheets
        For Each btn In ws.OLEObjects
            If TypeName(btn.Object) = "CommandButton" Then
                If btn.Object.Caption Like "*btn*" Then
                    btn.Object.Caption = vbNullString
                End If
            End If
        Next btn
    Next ws

End Sub