VBA – 循环遍历所有图表并复制到一张工作表上

我试图循环遍历在我的工作簿中存在的第二张纸上的所有图表到第二张到最后一张。 我想遍历所有的图表,复制图表区域并粘贴到有数据的最后一张纸上(只是一个普通的电子表格)。

我不明白为什么下面的代码不能正常工作,但我最终得到一个运行时错误“438” – 对象不支持第一行(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 

为什么它不工作是很容易的:你试图从表(2)(这是对象)计数到-1的数量。 当然这不会工作,因为(2)是一个对象。 尝试For I = 2 To Sheets(ActiveWorkbook.Sheets.Count - 1) ,将从2开始。即使您要使用的工作表的数量,您提供起始工作表的索引号,而不是工作表本身。