【问题标题】:VBA clear macro cleans more than the defined rangeVBA 清除宏清除超过定义的范围
【发布时间】:2019-04-09 15:15:47
【问题描述】:

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

我尝试使用 VBA 代码删除数据,其中包含如下类似的代码:

Range("A2:K2").Select
Range(Selection, Selection.End(xlDown)).Select
Selection.ClearContents

但是,它会删除整个表。我尝试了此代码的各种版本,但没有奏效。另外,我意识到,当数据不是表格格式时,宏可以正常工作。但是,我需要它是一个表格来更新动态范围内的公式。

此错误是否与表格格式有关?我该如何解决?

【问题讨论】:

标签: excel vba


【解决方案1】:

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

Sub ClearTableButLeaveFormulas()

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

End Sub

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-02-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多