首页 > 解决方案 > 从 VBA Excel 中删除 OLEObjects 复选框

问题描述

这完美地工作

For Each oleObject In wks.OLEObjects
    If TypeName(oleObject.Object) = "OptionButton" Then oleObj.Delete
Next

但是当尝试删除复选框时不起作用。什么都没发生

For Each oleObject In wks.OLEObjects
    If TypeName(oleObject.Object) = "Checkbox" Then oleObj.Delete
Next

标签: excelvba

解决方案


使用 progId。

Sub test()
    Dim wks As Worksheet
    Dim obj As OLEObject
    Set wks = ActiveSheet
    
    For Each obj In wks.OLEObjects
        Debug.Print TypeName(obj)
        Debug.Print obj.progID
        If obj.progID = "Forms.CheckBox.1" Then obj.Delete
    Next
End Sub

推荐阅读