如何正确清除表中特定列的内容(excel)

我正在使用的表格大约有40k行,我想要清除的数据在前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列被清除。

所以要debugging我设置了一个断点(*)的问题,它似乎进入了一个无限循环。 在第七次迭代之后,子从头再次开始。

谁能告诉我为什么会发生这种情况?

让我猜猜! :)您在工作表中有事件,通过更改工作表调用DeleteOpertationsTable()

如果你通过Application.EnableEvents = False禁用事件,你的代码应该可以工作。 我已经尝试过,这是可以的:

 For i = 1 To 15 Sheets(1).ListObjects("Table1").ListColumns(i).DataBodyRange.Clear Next i