VBA - 遍历所有图表并复制到一张工作表上
VBA - Looping through all chart sheets and copying onto one worksheet
我正在尝试遍历工作簿中生成的所有图表,这些图表存在于第 2 个 sheet 到倒数第 2 个 sheet。我想遍历所有图表,复制图表区域并将其粘贴到最后一个有数据的 sheet(只是一个普通的点差 sheet)。
我不明白为什么下面的代码不起作用,但我最终遇到 运行 时间错误“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
为什么它不起作用很简单:您尝试从 Sheet(2)(这是一个对象)数到 sheets -1 的数量。当然这不会起作用,因为 sheets(2) 是一个对象。尝试 For I = 2 To Sheets(ActiveWorkbook.Sheets.Count - 1)
以 2 开头。
即使你想使用 sheet 的数量,你也要给出起始 sheet 的索引号,而不是 sheet 本身。
我正在尝试遍历工作簿中生成的所有图表,这些图表存在于第 2 个 sheet 到倒数第 2 个 sheet。我想遍历所有图表,复制图表区域并将其粘贴到最后一个有数据的 sheet(只是一个普通的点差 sheet)。
我不明白为什么下面的代码不起作用,但我最终遇到 运行 时间错误“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
为什么它不起作用很简单:您尝试从 Sheet(2)(这是一个对象)数到 sheets -1 的数量。当然这不会起作用,因为 sheets(2) 是一个对象。尝试 For I = 2 To Sheets(ActiveWorkbook.Sheets.Count - 1)
以 2 开头。
即使你想使用 sheet 的数量,你也要给出起始 sheet 的索引号,而不是 sheet 本身。