VBA:自动将图表移动到单个工作表

问题描述

我正在开发一个 VBA 程序,它打开一个选定的 .csv 文件,使用该 .csv 文件中的值创建图表,并将其保存为选定路径上的新 .xlsx 文件。 创建图形并向其添加标题工作正常,但我想将每个图形(在那些 .csv 文件中创建了 5 个图形)保存在该文件中的一个单独的新工作表中。图表都是从“Sheet1”中选择的范围创建的,我创建了新的工作表:

Sheets.Add.Name = "Example1"
Sheets.Add.Name = "Example2"
Sheets.Add.Name = "Example3"

现在我不知道如何将这些图表中的每一个移动到这些新工作表中的一张中。 我想我可能必须为每个图形命名:

ActiveChart.Name = "ExampleChart"

然后使用:

Dim ChartObj as Object
ChartObj.ExampleChart.Location xlLocationAsObject,"Example1"

把它移到那里。但这在某种程度上不起作用。感谢帮助

解决方法

最简单的方法是在要移动到的工作表中创建图表(如评论中所述)。 如果要将图表从现有工作表移动到创建的工作表,可以使用类似的方法。

Dim chartobj As ChartObject

Set chartobj = Sheets("Sheet3").ChartObjects.Add(Left:=180,Width:=300,Top:=7,Height:=200) 'create chart in original sheet

chartobj.Name = "example chart" 'names chart

Sheets.Add.Name = "Example Sheet" 'creates new sheet

chartobj.Chart.Location xlLocationAsObject,"Example Sheet" 'moves chart to new sheet