我将复选框拉入电子表格,用于选择某些订单项以获得最终费用。虽然有一些不需要的复选框被拉入,但总共大约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
答案 0 :(得分: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
如果您使用的是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