有时复制和粘贴图表的Excel VBA宏

时间:2016-01-26 14:10:37

标签: vba excel-vba excel-charts excel

我编写了一个宏来导入大型CSV数据文件,组织数据并创建图表。图表由以下人员创建:

  • 复制模板图表
  • 粘贴到另一个标签页
  • 重命名图表
  • 添加数据系列
  • 对每列数据重复

我遇到的问题是,当我正常运行宏时,它实际上并不复制模板图表。因此,当粘贴到剪贴板时,剪贴板上没有任何内容,这会引发错误。这是实际的代码:

wbGen.Sheets("Dashboard").ChartObjects("Chart 0").Activate
ActiveChart.ChartArea.Copy
wbGen.Sheets("Charts").Activate
ActiveSheet.Cells(iRotor * 16 - 31, iChartA * 7 - 6).Select
ActiveSheet.Paste 'Debug mode points to this line
ActiveSheet.ChartObjects("Chart 0").Activate
ActiveSheet.Shapes("Chart 0").Name = "Chart " & iChart

这就是问题:如果我点击Debug,将光标向上移动到上面的第一行,然后点击继续,那么代码就会完美执行。我无法弄清楚为什么它在调试模式下工作但不正常。感谢您提供的任何帮助。

作为旁注,我试图摆脱ActivateSelect陈述并没有取得多大成果。我也可以获得该领域的任何帮助。

2 个答案:

答案 0 :(得分:0)

运行该代码时关闭vbe编辑器...

Sheets("Dashboard").ChartObjects("Chart 0").Copy
Sheets("Charts").Select
Sheets("Charts").Cells(iRotor * 16 - 31, iChartA * 7 - 6).Select
Sheets("Charts").PasteSpecial Format:="Microsoft Office Drawing Object", Link:=False, DisplayAsIcon:=False

答案 1 :(得分:0)

尝试这样的事情:

.so

Dim chtTemplate As Chart
Set chtTemplate = wbGen.Sheets("Dashboard").ChartObjects("Chart 0").Chart
DoEvents
chtTemplate.ChartArea.Copy

然后继续。