我正在尝试将我的图表粘贴到同一个Excel电子表格中,但是这样可以保留源格式。
我尝试录制宏但在粘贴时没有显示任何代码,在谷歌搜索后我发现您可以将其粘贴到PowerPoint中(Found here)ExecuteMso
可以在Sheets("Sheet1").ChartObjects(1).CopyPicture
Sheets("Sheet1").Paste Destination:=Worksheets("Sheet1").Range("I18")
ActiveSheet.ChartObjects(1).Activate
ActiveChart.ChartArea.Copy
'Application.CommandBars.ExecuteMso "PasteExcelChartSourceFormatting"
'ActiveSheet.PasteSpecial Format:="Keep Chart Source Formatting" Link:=False _
DisplayAsIcon:=False
'ActiveSheet.PasteSpecial Format:="PasteExcelChartSourceFormatting" Link:=False _
DisplayAsIcon:=False
的链接中解释{3}}
我需要将图表粘贴回excel同时保持源格式化的原因是我需要制作多个图表,然后从中获取信息,例如图例等等
修改
代码我到目前为止已经尝试了,但是出现了一个错误或其他错误
&
答案 0 :(得分:1)
保持源格式化仍将保持启用单元格内容的链接,因为图表不能保存值,只能抓取。也就是说,保持w图表以供参考的唯一方法是从一组新数据创建一个新图表,如果你想要不同的数据集具有相同的自定义格式,这可能看起来很浪费,你可以通过从原始图表创建模板,然后为每个新数据集创建该模板,您可以在设置数据后自动执行此操作:
+
每次设置数据时,粘贴图像可能是呈现图表的最简单方法。如果这是该工作表上的常量任务,可能只想创建一个链接到宏的按钮。
或者,如果您希望我们可以创建一个克隆整个工作表的宏,然后将图表复制回原始工作表,同时隐藏克隆,以便所有数据都存储在其他地方,并且仍然拥有数据把自己绑在。
对此任务的所有变通办法感到抱歉。如果您想到其他任何方法,请与我联系。
答案 1 :(得分:0)
这可能是一个适合您的好地方:
try {
# Assumes no Q:\ drive connected.
$foo = Get-PSDrive -name 'Q' -ErrorAction Stop
}
catch { # Use a generic handler to work around the bug in v1 an v2.
# $_ is the [System.Management.Automation.ErrorRecord] instance representing
# the PowerShell error at hand (same as $Error[0]).
# $_.Exception contains the exception that triggered the error,
# and can be compared to specific exception types with -is.
if ($_.Exception -is [System.Management.Automation.DriveNotFoundException]) {
"Drive not found."
} else {
"Something else went wrong."
}
}
如果这不是您想要的,请告诉我。
只要link = False,即使在工作表上显示,它也不会直接链接到原始内容。如果您更喜欢每个图表的新工作表,那么您可以使用它:
ActiveSheet.ChartObjects("Chart 1").Activate
ActiveChart.ChartArea.Copy
Range("Cell you want to paste to").Select
ActiveSheet.PasteSpecial Format:="Picture (PNG)", Link:=False, _
DisplayAsIcon:=False
或者只是在您认为合适的任何纸张上给它一个自定义范围:
Sheets.Add After:=ActiveSheet
ActiveSheet.PasteSpecial Format:="Picture (PNG)", Link:=False, _
DisplayAsIcon:=False
总而言之,宏应该看起来相对较小,最简单的形式如下:
Sheets("Sheet you want to paste to").Select
Range("Cell you want to paste to").Select
ActiveSheet.PasteSpecial Format:="Picture (PNG)", Link:=False, _
DisplayAsIcon:=False
如果这对您不起作用,请告诉我。