如何在没有图表名称的Excel VBA脚本中引用图表

时间:2015-08-06 02:21:31

标签: excel excel-vba charts vba

我正在创建Excel VBA脚本来格式化和自定义图表。我希望能够在不同的工作簿中的不同图表上使用该脚本,因此我不能使用"图表1和#34;在代码中。我已经看到了编辑工作簿中所有图表的方法,但我只想编辑我在工作簿中单击的图表。

我的VBA脚本的第一部分是通过保存击键创建的,如下所示:正如您所见,"图1"用每个代码块硬编码。有没有办法让我可以摆脱使用图表名称,因为我想在不同名称的不同图表上使用此宏。

Sub Format_Plot_Landscape()
ActiveChart.ChartArea.Select
With ActiveSheet.Shapes("Chart 1").Fill
    .Visible = msoTrue
    .ForeColor.ObjectThemeColor = msoThemeColorAccent1
    .ForeColor.TintAndShade = 0
    .ForeColor.Brightness = 0
    .Solid
End With
With ActiveSheet.Shapes("Chart 1").Fill
    .Visible = msoTrue
    .ForeColor.ObjectThemeColor = msoThemeColorBackground1
    .ForeColor.TintAndShade = 0
    .ForeColor.Brightness = 0
    .Transparency = 0
    .Solid
End With
ActiveChart.ChartArea.Select
ActiveChart.PlotArea.Select
ActiveSheet.Shapes("Chart 1").Line.Visible = msoFalse
With Selection.Format.Fill
    .Visible = msoTrue
    .ForeColor.ObjectThemeColor = msoThemeColorBackground1
    .ForeColor.TintAndShade = 0
    .ForeColor.Brightness = 0
    .Solid
End With
.
.
.

自从我在Excel中创建VBA脚本以来已经有很长一段时间了,当我想将特定的一致格式应用于不同的图表时,我常常做很多事情。我不记得图表名称是一个问题。在这种情况下,即使我尝试将VBA脚本应用于我记录击键的同一图表,我也会收到错误" 找不到具有指定名称的项目 "在以下代码行中:

With ActiveSheet.Shapes("Chart 1").Fill

我没有更改图表的名称。我正在运行Office 2013,如果这有任何区别。

1 个答案:

答案 0 :(得分:0)

您希望将ActiveSheet.Shapes("Chart 1").Fill替换为引用活动图表的内容。

Microsoft写了一篇关于图表的文章:https://msdn.microsoft.com/en-us/library/office/ff194426.aspx表示:"当图表是活动对象时,您可以使用ActiveChart属性来引用它。"

从此我猜你会用ActiveSheet.Shapes("Chart 1").Fill替换你的ActiveChart.ChartArea.Fill