VBA Excel 2010 – 将未知图表分配给variables

我试图将图表设置为variables,但是因为我在电子表格中有多个图表,我需要能够激活图表并将其分配给variables。

为loggingChartHandel = ActiveSheet.ChartObject(1)不起作用,我也尝试过.Shape(1)Chart("Name of chart") ,这些也不工作

 Dim ChartHandel2 As Chart ActiveSheet.ChartObjects(1).Activate ChartHandel2 = ActiveChart 

即使这会得到错误'91,对象variables或块variables未设置'它看起来应该工作,我确信我有这个工作在一个点(作为一种解决方法)

我的问题是基本上,你可以指定一个图表,如果它不活跃(如果可能的话)如何?

当分配对象时,必须在赋值语句的左边部分使用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 

如果您不确定索引,可以使用每个循环遍历图表。 像这样的东西

 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 

警告:它的唯一的演示版本,它将需要进一步的变化取决于你需要什么