将embedded的图表移动到新的图表并重命名工作表

我试图循环遍历特定工作表中的图表,并将它们移到所有工作表末尾的新图表工作表中。 另外,我想重命名图表并更改标签颜色。

这是我的代码:

Dim ws As Worksheet, co As ChartObject, c As Chart Set ws = ThisWorkbook.Sheets("nameofSheet") ws.Activate For Each co In ws.ChartObjects co.Activate Set c = co.Chart 'move chart to new sheet at the end c.Move After:=ThisWorkbook.Worksheets(ThisWorkbook.Worksheets.Count) 'rename chart sheet c.Name = "newChartSheetName" 'change colour c.Tab.Color = RGB(1,1,1) Next co 

但是,它不起作用并引发错误: Run-time error '1004': Method 'Move' of object '_Chart' failed

我已经广泛search,但无法find任何答案这个问题。 我试过直接使用co( ChartObject ),但是没有奏效。 我已经读过,你应该在做某事之前.Activate一个对象,但是它也行不通。

对于embedded式图表,首先需要转换为图表:

 Set c = c.Location(where:=xlLocationAsNewSheet, "newChartSheetName") c.Move After:=ThisWorkbook.Worksheets(ThisWorkbook.Worksheets.Count)