假设我在一个函数中创建了一个图表,如下所示:
Sub CreateChart()
Dim sh As Worksheet
Dim chrt as Chart
Set sh = ActiveWorkbook.Worksheets("Sheet1")
Set chrt = sh.Shapes.AddChart.Chart
End Sub
如何在不同的功能中激活此图表,我想将其移动到某个单元格?我使用以下代码,但它一直给我错误,并且不会激活图表。我甚至给了图表一个标题,并尝试使用它的标题来激活它但它不会识别名称:
Sub MoveChart()
ActiveSheet.ChartObjects("chrt").Activate
With ActiveChart.Parent
.Left = Range("N2").Left
End With
答案 0 :(得分:0)
为什么要激活它?您可以直接使用您存储的chrt对象,您可以将其传递给参数化的MoveChart
子例程:
Sub MoveChart(ByVal chrt As Excel.Chart)
With chrt.Parent
.Left = Range("N2").Left
End With
End Sub
区别在于您现在可以移动任何图表。
稍后修改
第二个宏失败,因为图表仍未命名。尝试通过 VBA变量的名称访问图表并不起作用。所以,试试这个:
Sub CreateChart()
Dim chrt As Shape
With ActiveWorkbook.Worksheets("Sheet1").Shapes
Set chrt = .AddChart()
Let chrt.Name = "New chart"
End With
End Sub
Sub MoveChart()
With ActiveWorkbook.Worksheets("Sheet1")
.ChartObjects("New chart").Left = .Range("N2").Left
End With
End Sub
请勿忘记修改代码以使用其他图表名称,其他工作表名称等。