当前位置: 首页 > 知识库问答 >
问题:

使用VBA将Excel图表粘贴到Powerpoint中

邬安邦
2023-03-14

我的代码

'Plots Chart Based on Tabular Data
Range("A1:B1").Select
Range(Selection, Selection.End(xlDown)).Select
ActiveSheet.Shapes.AddChart2(201, xlColumnClustered).Select
ActiveChart.ApplyChartTemplate ( _
        "C:\Users\Colin\AppData\Roaming\Microsoft\Templates\Charts\Edge45 Bar Chart Transparent Horizontal Bars.crtx")
ActiveChart.SetSourceData Source:=Range("'Screaming Frog Summary'!$A$1:$B$16")
ActiveSheet.Shapes("Chart 1").IncrementLeft -57.6
ActiveSheet.Shapes("Chart 1").IncrementTop 243.9

'Opens a new PowerPoint presentation based on template and pastes data into Slide 2 of Powerpoint from Excel

Dim PPApp As PowerPoint.Application, PPPres As PowerPoint.Presentation, PPSlide As PowerPoint.Slide, PPShape As Object
Dim XLws As Worksheet

Set XLws = ActiveSheet
Set PPApp = New PowerPoint.Application
Set PPPres = PPApp.Presentations.Open("C:\Users\Colin\Dropbox (Edge45)\Edge45 Team Folder\Edge45 Company Documents\Templates\Powerpoint Templates\Edge45 Audit Template Macro.potm", Untitled:=msoTrue)
PPApp.Visible = True
Set PPSlide = PPPres.Slides(2)

XLws.Range("A1:D16").Copy
Set PPShape = PPSlide.Shapes.PasteSpecial(DataType:=ppPasteHTML, Link:=msoFalse)
Application.CutCopyMode = False

With PPShape
    .Top = 10
    .Height = 100
    .Left = 10
    .Width = 100
End With

共有1个答案

田焕
2023-03-14

我不知道源工作表上有多少张图表,但假设只有一张,如果在代码末尾添加这些行,它将从引用工作表复制并粘贴第一张图表到第二张幻灯片:

XLws.ChartObjects(1).Copy ' or XLws.ChartObjects("Chart 1").Copy
Set PPChart = PPSlide.Shapes.PasteSpecial (ppPasteDefault)

请注意,如果目标幻灯片有空的图表和/或对象占位符,则如果您首先使用如下所示选择该图表,则该图表可以自动粘贴到目标占位符中:

PPSlide.Shapes.Placeholders(2).Select

根据幻灯片的布局,可能需要更改索引2。

With PPChart
    .Top = 10
    .Height = 100
    .Left = 10
    .Width = 100
End With
 类似资料:
  • 我有几个Excel图表,我想用Python导出为图像。每个图表都在一个单独的Excel文件中,只有一张工作表。此脚本适用于几乎所有我的图表: 我有一个图表,但是不能导出...我得到这个错误后导出函数: 图表被复制到临时工作表,但导出失败。在一些为导出此图表而编写的旧Excel-VBA代码中,我看到这一行: Python的等价物是什么?这: 不工作(属性错误:对象没有属性'Paste特殊') 编辑-

  • 我需要对SAP做一个大规模的改变。因此,我想有一个宏,复制3个不同的列从excel到sap(约3000行) 销售订单#-数据1-数据2 从excel复制销售订单-执行事务处理/NVA02-粘贴 在excel中复制数据1-在Sap中粘贴 在excel中复制数据2-在Sap中粘贴 下一个销售订单等直到最后一行 excel工作表将由多人用户使用,例如活动工作簿将比路径更有帮助 你能帮我提供一个VBA代码

  • 我有一个excel工作簿,每张工作表有一个图表和多个工作表,我试图将所有图表作为图片导出到PowerPoints中。问题是我的当前代码无法工作。我的代码出现错误: > 简报按预期打开 将复制我在运行前选择的活动工作表的图表 复制的图表粘贴在PowerPoint中 PowerPoint创建下一张幻灯片 现在问题再次复制同一工作表中的同一图表!我希望代码移动到下一张工作表,选择上面的图表,并在下一张幻

  • 我有一个生成Word文档的Excel工作簿。它会将Excel图像复制到生成的Word文档的标题中。此代码已在Office 2003、2007和2010中运行,但现在在2013年,它在粘贴语句上失败,在粘贴方法中出现了一个通用的自动化错误。我希望有人能帮我在Office 2013中完成这项工作。若要复制,请使用包含单个形状的名为“徽标”的工作表定义宏工作簿,添加以下代码,然后执行doctop子例程:

  • 我是VBA和SAP GUI Scirpting的新手。我需要帮助实现代码到录制的VBScript。 我有一个Excel表,其中的数据从TM03导入到Excel表中使用的是引用号。这部分工作得很好。 代码: 如您所见,当状态完成时,如果没有更多的Referenze号码可供搜索,则停止。没关系。 第二步是获取Referenze号(这里我必须将一个星号连接到Referenze号--示例[*12345]&

  • 谢谢你阅读我的问题。 我有一个表[ws1(A4:Q500)]包含数据,而Q列后面有公式。因此,我无法复制整行,只能复制文本中的特定范围。 Q列是定义数据是否属于周期的公式,即11月16日至11月30日的数据。标志如下: 0 1 = 16/11 - 30/11 2. 这里的目标是将带有标志“1”的ws1数据复制到[ws2(A2:P200)],然后删除带有标志“1”和“2”的ws1数据 相信复制和删除