2016-12-17 90 views
0

我正在使用以下代码删除电子表格中的所有已用行。vba删除该行中所有使用的行和复选框?

Sub Clear() 
With ActiveSheet 
    .Rows(13 & ":" & .Rows.Count).Delete 
End With 
End Sub 

这可以正常工作,并按照您的预期删除行。但是,在我的每一行中,我都有一个复选框,当删除行时,除1个复选框被删除。

它似乎最后一个复选框被推到行上方的行删除行范围。当有人删除所有行时,是否可以有人向我展示确保所有复选框都被删除的方法?

感谢

回答

0

你的代码工作对我很好,我不知道为什么最后一个复选框会得到推升。你可以告诉它按行删除复选框,但我想你会遇到同样的问题。添加此对您的代码将删除提供所有复选框你没有创建它们经过多次更改其名称:

For Each shape In ActiveSheet.Shapes 
    If InStr(Replace(LCase(shape.Name), " ", ""), "checkbox") Then shape.Delete 
Next shape