Vba 在Excel中自动更新图表

Vba 在Excel中自动更新图表,vba,excel,charts,excel-formula,Vba,Excel,Charts,Excel Formula,我有一个Excel电子表格,其中的数据行通过一些VBA代码动态添加到。每分钟都会添加一行新数据。当电子表格关闭时,更多代码会自动删除所有这些数据。当电子表格重新打开时,数据将刷新,并且再次添加到每分钟 我想用折线图来表示这些数据。我希望折线图每分钟更新一次,但我也希望X轴每分钟动态“增长”。为了实现这一点,我一直在“define name”中使用offset命令,如下所示: Time=OFFSET(Sheet4!$A$2,0,0,COUNTA(Sheet4!$A:$A)-1) 及 一天中的时间

我有一个Excel电子表格,其中的数据行通过一些VBA代码动态添加到。每分钟都会添加一行新数据。当电子表格关闭时,更多代码会自动删除所有这些数据。当电子表格重新打开时,数据将刷新,并且再次添加到每分钟

我想用折线图来表示这些数据。我希望折线图每分钟更新一次,但我也希望X轴每分钟动态“增长”。为了实现这一点,我一直在“define name”中使用offset命令,如下所示:

Time=OFFSET(Sheet4!$A$2,0,0,COUNTA(Sheet4!$A:$A)-1)

一天中的时间在我的图表的x轴上,总计在y轴上

在图表本身的“选择数据源”下,对于x(水平)轴,轴标签范围设置为:

=Sheet4!Time
在图例项下,上的系列值设置为:

=Sheet4!Total
在我关闭电子表格并重新打开它之前,所有这些都非常有效。图形不再填充任何数据,并且不会每分钟更新一次。如果我进入名称管理器,“时间”现在读作:

=OFFSET(Sheet4!#REF!,0,0,COUNTA(Sheet4!$A:$A)-1)
=OFFSET(Sheet4!#REF!,0,0,COUNTA(Sheet4!$K:$K)-1)
总数如下:

=OFFSET(Sheet4!#REF!,0,0,COUNTA(Sheet4!$A:$A)-1)
=OFFSET(Sheet4!#REF!,0,0,COUNTA(Sheet4!$K:$K)-1)
因此,参考资料已经丢失。我怀疑这是因为当电子表格重新打开时,它正在查找第一行中的值,而不是立即找到它们(可能是在VBA代码提取数据之前查找它们)


有人有什么建议吗?我正在使用Excel 2016。

您可以使用“间接”来解决宏删除行的问题

Time=OFFSET(INDIRECT("Sheet4!$A$2"),0,0,COUNTA(Sheet4!$A:$A)-1)

这边走,床单4$$2不是单元格引用,而是文本字符串,因此在删除单元格时不会更改为#Ref。“间接”将创建单元格引用,因此无论删除多少单元格,它都将始终指向A2。

您可以使用“间接”来解决宏删除行的问题

Time=OFFSET(INDIRECT("Sheet4!$A$2"),0,0,COUNTA(Sheet4!$A:$A)-1)
这边走,床单4$$2不是单元格引用,而是文本字符串,因此在删除单元格时不会更改为#Ref。间接引用创建一个单元格引用,因此无论删除多少个单元格,它都将始终指向A2

当电子表格关闭时,更多代码会自动删除所有数据 这个数据

当您删除所有数据时,单元格引用将丢失-如果您引用单元格
A1
,然后删除该单元格,则任何公式现在都将显示
#REF错误。
如果清除单元格的内容而不是删除它们,则永远不会出现错误

代码中的某个地方将有一行类似于:

ThisWorkbook.Worksheets("Sheet1").Cells.Delete 
如果将此行更改为:

ThisWorkbook.Worksheets("Sheet1").Cells.ClearContents  
单元格不会被删除,并且
#REF错误

当电子表格关闭时,更多代码会自动删除所有数据 这个数据

当您删除所有数据时,单元格引用将丢失-如果您引用单元格
A1
,然后删除该单元格,则任何公式现在都将显示
#REF错误。
如果清除单元格的内容而不是删除它们,则永远不会出现错误

代码中的某个地方将有一行类似于:

ThisWorkbook.Worksheets("Sheet1").Cells.Delete 
如果将此行更改为:

ThisWorkbook.Worksheets("Sheet1").Cells.ClearContents  
单元格不会被删除,并且
#REF错误