将嵌入图表移动到新图表工作表并重命名工作表

时间:2016-06-23 13:51:00

标签: excel vba excel-vba charts

我正在尝试遍历特定工作表中的图表并将它们移动到所有工作表末尾的新图表工作表中。此外,我想重命名图表工作表并更改选项卡颜色。

这是我的代码:

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

我进行了广泛的搜索,但找不到任何问题的答案。我曾尝试直接使用co(ChartObject),但这不起作用。我已经读过你在做某事之前应该.Activate一个对象,但它也不起作用。

1 个答案:

答案 0 :(得分:2)

对于嵌入式图表,您需要先转换为图表:

intent.addFlags(
Intent.FLAG_GRANT_PERSISTABLE_URI_PERMISSION |
Intent.FLAG_GRANT_READ_URI_PERMISSION |
Intent.FLAG_GRANT_WRITE_URI_PERMISSION);