excel - 将形状从 Powerpoint 复制到 Excel 时,VBA 保持格式
问题描述
我正在尝试使用 Excel VBA 宏将形状从 Powerpoint 演示文稿复制到 Excel 模板。但是,我无法保留原始 Powerpoint 源中的格式。
这是我到目前为止的代码
Public Sub test()
Dim PPT As PowerPoint.Application
Dim p As PowerPoint.Presentation
Dim s As Slide
Dim aux_vec as Variant
Dim wkbk as Workbook
Set PPT = CreateObject("PowerPoint.Application")
PPT.Presentations.Open Filename:=src, ReadOnly:=True
Workbooks.Open "template.xlsx", ReadOnly:=True
Set wkbk = ActiveWorkbook
PPT.Activate
Set s = PPT.ActivePresentation.Slides(1) 'Slide to be copied
ReDim aux_vec(s.Shapes.Count)
For i = 1 To s.Shapes.Count
aux_vec(i) = i
Next i
s.Shapes.Range(aux_vec).Copy
Set wks = wkbk.Sheets("Sheet1") 'Destination sheet
wks.Select
wks.Range("C3").Select
wks.PasteSpecial 5 ' <--- Changes theme
End Sub
有任何想法吗?
编辑:修复了 Ryan B 评论后的代码片段。
解决方案
我找到了一种解决方法:我导出了 Powerpoint 演示文稿中使用的主题并将其导入 Excel。这样形状就可以保持它们的格式。不是最佳的,但它对我有用。
推荐阅读
- python - 在 Keras 模型中将训练数据指定为元组 (x, y) 的正确方法。适合多个输入和输出
- python - 过滤掉列表并只在python中保留整数
- vue.js - 更新静态 Nuxt 网站中的内容
- razorengine - 如何找到哪个版本的 RazorEngine 适用于哪个 .net 框架?
- javascript - 有没有办法找到嵌套对象属性的兄弟值?
- r - R Shiny 仪表板 - 如何使用选择框以交互方式选择散点图的 x 和 y 轴?
- r - 将比例尺添加到使用 ggRGB 制作的地图
- delphi - 印地。通过流发送附加 pdf
- url - 创建一个将照片和文本发布到linkedin 组的程序?
- c++ - 如何通过从 QChart 继承来制作极坐标图