0

我编写了一个宏,它可以导入一个大型 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,将光标返回到上面的第一行,然后单击继续,那么代码将完美执行。我不知道为什么它在调试模式下工作但不正常。感谢您提供的任何帮助。

作为旁注,我试图摆脱ActivateandSelect声明的尝试并没有取得成果。我在该领域能得到的任何帮助也将不胜感激。

4

2 回答 2

0

尝试这样的事情:

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

或者

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

然后继续。

于 2016-01-30T15:18:26.033 回答
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
于 2016-01-26T14:28:09.867 回答