我已将多个图表从工作簿复制到另一个,我设法用vba更改数据系列。
这些图表的一些数据标签,获取数据“ From Cells ”,但此范围仍然引用第一个工作簿,我需要更改它以引用新工作簿中的新工作表
我能够获得引用“From Cells”的公式。
这是我的代码
Sub xtDataLabels_FromCells()
Dim oChart As ChartObject
Dim OldString As String, NewString As String
Dim mySrs As Variant
OldString = "'[Daily Report]SP'!$P$11:$P$20"
NewString = "SP!$P$11:$P$20"
For Each oChart In ActiveSheet.ChartObjects
For Each mySrs In oChart.Chart.SeriesCollection
' From a recorded macro
'ActiveChart.SeriesCollection(7).DataLabels.Format.TextFrame2.TextRange. _
InsertChartField msoChartFieldRange, "=SP!$P$11:$P$20", 0
Next
Next
End Sub
“来自细胞的价值”
此致 埃利奥·费尔南德斯
答案 0 :(得分:0)
我不认为这正是你想要的。您的代码遍历所有系列的所有图表,并且显然希望对标签使用相同的范围。这样就可以了:
Sub xtDataLabels_FromCells()
Dim oChart As ChartObject
Dim OldString As String, NewString As String
Dim mySrs As Variant
OldString = "'[Daily Report]SP'!$P$11:$P$20" ' irrelevant
NewString = "SP!$P$11:$P$20"
For Each oChart In ActiveSheet.ChartObjects
For Each mySrs In oChart.Chart.SeriesCollection
' From a recorded macro
mySrs.DataLabels.Format.TextFrame2.TextRange. _
InsertChartField msoChartFieldRange, "=" & NewString, 0
Next
Next
End Sub
如果你想做一个Find&替换现有的图表字段,我担心你运气不好。您可以使用VBA使用InsertChartField
设置图表字段,但您无法使用VBA 读取现有图表字段中的内容。< / p>
VBA对象模型for Excel图表的另一个缺点。