我试图将图表设置为变量,但是由于我的电子表格中有多个图表,我需要能够激活图表并将其分配给变量。
对于记录ChartHandel = ActiveSheet.ChartObject(1)
不起作用,我也尝试了.Shape(1)
和Chart("Name of chart")
这些也不起作用
Dim ChartHandel2 As Chart
ActiveSheet.ChartObjects(1).Activate
ChartHandel2 = ActiveChart
即使这样也会出现错误'91,对象变量或块变量未设置',它看起来应该可以正常工作,而且我确信我已经在一点上工作了(作为一种解决方法)
我的问题基本上是,如果图表不活跃(如果可能的话,如何),你可以将图表分配给变量吗?
答案 0 :(得分:2)
分配对象时,必须使用赋值语句左侧部分的Set
关键字
另外Chart对象是ChartObject对象的成员
这是一个处理它们的小例子
Option Explicit
Sub ChartObjects()
Dim chartObj As ChartObject
With ThisWorkbook.Worksheets("charts")
For Each chartObj In .ChartObjects
With chartObj ' to deal with current "ChartObject" object
With .Chart ' to deal with "Chart" object of "ChartObject" object
.ChartType = xlXYScatter ' or another XlChartType Enumeration (https://msdn.microsoft.com/en-us/library/office/ff838409.aspx)
MsgBox .ChartArea.Name
.HasLegend = False
.ChartTitle.Caption = "chart title you need"
End With
End With
Next chartObj
End With
End Sub
答案 1 :(得分:1)
如果您不确定索引,可以使用每个循环遍历图表。像这样的东西
Sub testChart()
Dim testSheet As Worksheet
Set testSheet = Sheets("Sheet1")
Dim myChart As ChartObject
Dim chartVariable As Chart
With testSheet
For Each myChart In .ChartObjects
Set chartVariable = myChart.Chart
Next myChart
End With
End Sub
警告:它唯一的演示版本,需要进一步改变取决于你需要什么