我正在使用的表格大约有4万行,而我要清除的数据位于前15列,所以我按照下面的代码来完成这项工作:
Sub DeleteOperationsTable()
Application.EnableEvents = False
Dim i As Integer
For i = 1 To 15
(*) Sheet(1).ListObjects("Table1").ListColumns(i).DataBodyRange.Clear
Next i
Application.EnableEvents = True
End Sub
恰好只清除了第1列到第7列。
因此,为了调试问题,我设置了一个断点(*),似乎它进入了一个无限循环。在第7次迭代之后,子从头开始。
有谁能告诉我为什么会这样?
答案 0 :(得分:1)
让我猜! :)您在工作表中有事件,通过更改工作表来调用DeleteOpertationsTable()
。
如果您通过Application.EnableEvents = False
停用活动,那么您的代码应该有效。我试过这个,没关系:
For i = 1 To 15
Sheets(1).ListObjects("Table1").ListColumns(i).DataBodyRange.Clear
Next i