删除并重新上传数据 table 没有引用有 #REF 问题 [Excel]

Deleting and reuploading data table without references having #REF issues [Excel]

我创建了一个 VBA 脚本,用于删除现有数据 table(名为数据)并将其替换为新版本(具有相同的 headers 且名为数据) .我有很多依赖于此 table 的公式和图表,我想知道如何在更改 table 后保持引用正常工作(以便枢轴 table、公式和数组当我更新数据 table).

时,公式会自动更新

以下是我 运行 遇到的问题的一些图片:

Pivot table未更新新数据

数据转向#REF!删除数据后 table

使用动态命名范围作为主元table 来源。然后只删除 headers.Don 以下的数据,不要覆盖或更改 headers

或者使用您现有的 table 但再次保留 headers 并且只删除下面的行(例如 ActiveSheet.ListObjects(1).DataBodyRange.Delete ) 。如果您删除整个 table,那么任何依赖公式都会出错,因为引用不再有效。 table 已不存在。

或者拥有为您创建一切的代码。

可能发生的情况是,一旦删除 table(根据您对问题的定义),图表的 link 就会丢失。

而不是删除 table(作为一个整体),而是删除单独的数据行:

Sub RemoveTableBodyData()

Dim tbl As ListObject

Set tbl = ActiveSheet.ListObjects("Table1")

'Delete Table's Body Data
  If tbl.ListRows.Count >= 1 Then
    tbl.DataBodyRange.Delete
  End If

End Sub

来自:The VBA Guide To ListObject Excel Tables

否则应该保持图表的 table 参考完整。仅供参考:因为数据已更新,您可能需要调用以刷新任何相关的数据透视表和图表,否则可能不清楚数据已更新......我可能会在数据集后调用刷新一次已清除,然后在更新后再次...这将表明 pivots/charts 已更新。

祝你好运。

那么,为什么不使用 edit/replace“=”和 "xyxyxy" 将所有公式更改为文本,然后对数据做任何事情,因为一切都只是文本。

完成后,将 "xyxyxy" 替换为“=”,公式再次起作用 - 适用于我的工作表,我有很多公式。