VBA 删除一些形状

问题描述 投票:0回答:1

我正在尝试删除一些附加了宏的形状,并且在为最终用户复制工作簿时仅保留组合框。我所有的组合框都以 Cbxxxxx 开头。

我有以下代码,但它删除了工作表上的所有形状。

子删除_按钮()

将按钮调暗为形状

对于 ActiveSheet.Shapes 中的每个 btn 如果 btn.name <> “Cb*” 那么 btn.Delete 结束如果

下一个按钮

结束子

excel vba automation
1个回答
0
投票
  • 使用
    Type
    属性来识别所需的形状
msoAutoShape (1) - AutoShape
msoFormControl (8) - Form control
msoOLEControlObject (12) - ActiveX control

微软文档:

Shape.OnAction 属性 (Excel)

Shape.Type 属性 (Excel)

MsoShapeType 枚举(Office)

Sub RemoveShps()
    Dim oShp As Shape
    For Each oShp In ActiveSheet.Shapes
        With oShp
            If .Type = msoAutoShape And Len(.OLEFormat.Object.OnAction) > 0 Then
                .Delete
            End If
        End With
    Next
End Sub
© www.soinside.com 2019 - 2024. All rights reserved.