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,可能還有其他問題,希望這對您有幫助。

相關內容