用于从特定单元格中删除复选框的宏

Jam*_*ker 4 excel vba excel-vba

我将复选框拉入电子表格,用于选择某些订单项以获得最终费用.虽然有一些不需要的复选框被拉入,但总共大约5个左右.我可以使用宏来获取这些不需要的复选框的特定单元格.由于我的数据更改,这些不需要的复选框并不总是在同一个地方,因此我将不得不一次删除它们,这不应该是一个问题,除了我不知道从中删除复选框的代码活跃的细胞.我需要一个代码来删除活动单元格或选定单元格中的复选框.我已经包含了我在下面尝试过的一些编码.第一部分是让我到正确的单元格中删除复选框.第二部分是两个不同的代码,我试图删除复选框,但都没有工作.我很感激你的意见.

'To delete unwanted checkboxes
    Sheets("Quote Sheet").Select
    Range("B9").Select
    Selection.End(xlDown).Select
    ActiveCell.Offset(0, -1).Select

    ActiveSheet.Shapes.Range(Array("Check Box 456")).Select
    Selection.Delete
    Selection.Cut

    ActiveCell.CheckBoxes.Delete
    Selection.FormatConditions.Delete
Run Code Online (Sandbox Code Playgroud)

Pet*_*ert 9

此代码将删除位于活动单元格的任何Excel复选框.

Sub DeleteCheckbox()
    Dim cb As CheckBox

    For Each cb In ActiveSheet.CheckBoxes
        If cb.TopLeftCell.Address = ActiveCell.Address Then cb.Delete
    Next
End Sub
Run Code Online (Sandbox Code Playgroud)

如果您使用ActiveX复选框,此代码将执行以下操作:

Sub DeleteActiveXCheckbox()
    Dim obj As OLEObject
    Dim cb As MSForms.CheckBox

    For Each obj In ActiveSheet.OLEObjects
        If TypeOf obj.Object Is MSForms.CheckBox Then
            Set cb = obj.Object
            If cb.ShapeRange.Item(1).TopLeftCell.Address = _
                ActiveCell.Address Then obj.Delete
        End If
    Next
End Sub
Run Code Online (Sandbox Code Playgroud)

  • @SiddharthRout:完成了!:-) (2认同)