Excel:更新系列数据擦除图表样式

我正在检索我的服务器上的一个PHP文件格式化为CSV文件的工作表数据。
因为我认为我不知道我会收到多less行,所以它会在这个工作表中推送数据,其中的选项会replace单元格的内容(如果有必要的话),并删除那些未使用的单元格。

我运行一个过程来parsing这个工作表的数据来填充另一个工作表。
出于与上述相同的原因,我在填写第二张工作表之前清除这些列。

以下是我的程序示例:

Application.ScreenUpdating = False Worksheets("data2").Activate Range("A:B:C:D").Clear Worksheets("data").Activate Set my_range = Range("A:A") For i = 1 To my_range.Rows.Count 'calculations saved in some vars : var1, var2, ... Cells(i, 1).Value = var1 Cells(i, 2).Value = var2 '... Next i Application.ScreenUpdating = True 

在第二个工作表上,我使用两个工作表中的数据插入了一个图表。
由于行数是dynamic的,我声明了名称来引用我的列。 它们被设置为: =OFFSET(data!$A$1;0;0;COUNT(data!$A:$A))

我的问题是当我运行我的程序时,我失去了为我的图表设置的所有样式。 难道我做错了什么 ? 有没有select保持我的图表样式?

我误解了你的问题,并认为你的单元格正在失去格式。 现在我看到这是你的图表。 我有很多图表,我正在做和你一样的事情。 我用VBA更新Chart系列,我从不会丢失格式。 在清除数据之前,我将所有图表系列值设置为{1}。 然后我有另一个macros来加载数据后设置系列值。

这是我在清除数据之前为了清除系列而写的一个子文件:

 Sub clearChart(chartWs As Worksheet, chartName As String) Dim cObj As ChartObject Dim i As Integer Set cObj = chartWs.ChartObjects(chartName) For i = 1 To cObj.Chart.SeriesCollection.count cObj.Chart.SeriesCollection(i).Values = "{1}" cObj.Chart.SeriesCollection(i).XValues = "{1}" Next i End Sub 

例如:clearChart Sheet2,“Chart1”

希望有帮助…