我在工作表中检索从我服务器上的php文件格式化为csv的数据。
我认为我不知道会收到多少行,它会在此工作表中推送数据,并在必要时替换单元格的内容,并删除未使用的行。
我运行一个过程来解析这个工作表的数据,以填充另一个工作表
出于与上述相同的原因,我在填写之前清除了第二个工作表的列。
以下是我的程序示例:
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
在第二张工作表上,我使用两张工作表中的数据插入了图表
由于行数是动态的,我已经声明了要引用我的列的名称。它们设置为:=OFFSET(data!$A$1;0;0;COUNT(data!$A:$A))
我的问题是当我运行我的程序时,我失去了为我的图表设置的所有样式。 难道我做错了什么 ?是否有保留图表样式的选项?
答案 0 :(得分:1)
我误解了你的问题,并认为你的细胞格式正在丢失。现在我看到它是你的图表。我有很多图表,我和你做同样的事情。我使用VBA更新图表系列,我永远不会丢失格式。在清除数据之前,我设置了所有图表系列值= {1}。然后我有另一个宏,在我加载数据后设置系列值。
这是我在清除数据之前编写的用于清除系列的子文章:
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”
希望有帮助...