VBA - 循环浏览所有图表并复制到一个工作表

时间:2015-08-19 09:02:57

标签: excel vba charts copy paste

我试图遍历我的工作簿中生成的所有图表,这些图表存在于第二张到第二张到最后一张纸上。我想遍历所有图表,复制图表区域并将其粘贴到最后一张有数据的表格上(只是一个常规的电子表格)。

我无法理解为什么下面的代码无法正常工作但我最终遇到了运行时错误''''' - 对象在第一行(for循环)上不支持此属性或方法。

为什么这不起作用的任何想法?

Sub chartCopy()

    For I = Sheets(2) To Sheets(ActiveWorkbook.Sheets.Count - 1)

        ActiveChart.ChartArea.Copy
        Sheets(Sheets.Count).Select
        ActiveSheet.Paste

    Next I


End Sub

1 个答案:

答案 0 :(得分:1)

为什么它不起作用很简单:你试图从Sheet(2)(它是对象)计算到张数-1。当然这不起作用,因为纸张(2)是一个物体。试试以{2}开头的For I = 2 To Sheets(ActiveWorkbook.Sheets.Count - 1)。 即使您想使用纸张数量,也要给出起始纸张的索引号,而不是纸张本身。