我编写了一个宏来导入大型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
,将光标向上移动到上面的第一行,然后点击继续,那么代码就会完美执行。我无法弄清楚为什么它在调试模式下工作但不正常。感谢您提供的任何帮助。
作为旁注,我试图摆脱Activate
和Select
陈述并没有取得多大成果。我也可以获得该领域的任何帮助。
答案 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
然后继续。