Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Excel VBA clear宏清除的范围大于定义的范围_Excel_Vba - Fatal编程技术网

Excel VBA clear宏清除的范围大于定义的范围

Excel VBA clear宏清除的范围大于定义的范围,excel,vba,Excel,Vba,我在Excel中有数据,它是表格格式,其中一半(列)包含数据,其余包含一些公式。我正在写一些关于数据部分的结果,所以我想在每次更新之前删除它 我尝试使用VBA代码删除数据,该代码包含以下类似代码: Range("A2:K2").Select Range(Selection, Selection.End(xlDown)).Select Selection.ClearContents 但是,它会删除整个表。我尝试了此代码的各种版本,但都不起作用。此外,我意识到,当数据不是表格式时,宏可以正常工作。

我在Excel中有数据,它是表格格式,其中一半(列)包含数据,其余包含一些公式。我正在写一些关于数据部分的结果,所以我想在每次更新之前删除它

我尝试使用VBA代码删除数据,该代码包含以下类似代码:

Range("A2:K2").Select
Range(Selection, Selection.End(xlDown)).Select
Selection.ClearContents
但是,它会删除整个表。我尝试了此代码的各种版本,但都不起作用。此外,我意识到,当数据不是表格式时,宏可以正常工作。但是,我需要它是一个表,以便在动态范围内更新公式


此错误是否与表格格式有关?有什么想法可以解决吗?

您需要使用
列表对象
对象的
.DataBodyRange
属性(这是VBA中对表格的调用)。下面的代码将清除活动工作表中表格的非公式元素

Sub ClearTableButLeaveFormulas()

With ActiveSheet.ListObjects(1)
   .DataBodyRange.SpecialCells(xlCellTypeConstants).ClearContents
End With

End Sub
可能重复的