VBA 从模板复制图表工作表

VBA 从模板复制图表工作表

我有一个工作表图表,我想将其用作宏中的模板。我试图复制工作表并将其分配给图表类型的对象,但无法使其工作。

下面的代码是两行用于创建或复制图表的工作代码。

问题出在最后一行代码上。它复制了工作表,但在转到下一行之前出错(需要错误 424 对象)。

有人能解释为什么会发生这种情况,并提供解决方案将工作表分配到一行上吗?

现在我的解决方案是复制模板,然后将 WS_chart3 设置为活动表,如果可以避免的话,我只是不喜欢引用活动表。

Sub test()

Dim WS_chart2 As Chart
Dim WS_chart3 As Chart

    'adds chart sheet but doesn't use a template
    Set WS_chart2 = Charts.Add(After:=Sheets(Sheets.Count))

    'adds sheet but doesn't asign in to variable WS_chart2
    Sheets("template").Copy After:=Sheets(Sheets.Count)

    'adds chart sheet but then errors out
    Set WS_chart3 = Sheets("template").Copy(After:=Sheets(Sheets.Count))

End Sub

答案1

可以肯定的一个问题是 Copy 方法不返回对象(它不返回任何内容),因此您必须先进行复制,然后获取新工作表并将其分配给变量。

我认为你可以这样做

Dim SheetBeforeChart3 As Long

SheetBeforeChart3 = Sheets.Count
Sheets("template").Copy After:=Sheets(SheetBeforeChart3)

Set WS_chart3 = Sheets(SheetBeforeChart3 + 1)

虽然我不太了解 Excel VBA,但可能还存在其他问题,我希望这能对你有所帮助。

相关内容