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

时间:2017-11-23 09:47:55

标签: excel vba excel-vba

我正在使用的表格大约有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次迭代之后,子从头开始。

有谁能告诉我为什么会这样?

1 个答案:

答案 0 :(得分:1)

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

如果您通过Application.EnableEvents = False停用活动,那么您的代码应该有效。我试过这个,没关系:

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