为什么跨Excel格式复制和粘贴图表会丢失格式?

时间:2018-07-31 13:07:21

标签: excel vba excel-vba charts excel-charts

我正在构建一个宏,该宏可以从一个Excel复制图表并将其粘贴到另一个Excel中。以前可以使用,但现在似乎丢失了图表X轴的日期格式。即使我使用copyPicture,它仍然设法丢失日期格式并显示“ jan yy”而不是“ jan 16”。我在荷兰工作,所以用“ jj”表示年份,但是两个excel文件都是美国格式,我的电脑也是。

来源图表:
The Source Chart here

输出图表:
Output Chart here

Sheets("Factsheet").ChartObjects("Chart 8").CopyPicture
core.Sheets("Output").Range("DD32").PasteSpecial

我已经尝试了Copy,CopyPicture(xlScreen或xlPrint)以及Paste(Paste,PasteSpecial xlPasteValues)的多种配置,但似乎都没有保留格式。如果我使用以下命令,则它仅在第一次运行宏时起作用:

Sheets("Factsheet").ChartObjects("Chart 8").Activate
ActiveChart.ChartArea.Copy
core.Sheets("Output").Paste

但是,与第一种方法不同,这将使我无法粘贴到特定的单元格位置,而且我也不明白为什么它第一次起作用而不是第二次起作用。任何帮助或想法将不胜感激!

1 个答案:

答案 0 :(得分:0)

ActiveChart.SaveChartTemplate Filename:="Temp Chart"
ActiveChart.ChartArea.Copy
ActiveSheet.Sheets("YourSheetName").Paste
ActiveChart.ApplyChartTemplate "Temp Chart"

'这将恢复复制粘贴图表操作的格式,也将图表分配给新的源范围时(因为它也会丢失格式)