0

我将 VBA 宏从 PowerPoint 2007 迁移到 2010,经过一些调试和测试后,我发现将形状从一个演示文稿复制到另一个演示文稿仅适用于 Windows 7,而不适用于 Windows XP。

当我关闭演示文稿时,我从中复制了形状,在 Windows XP 中,新对象被清空。在 Windows 7 中,该对象仍然存在。

我做了一个例子:

Public Sub test()
  Dim HandlerApplication As New HandlerApplication
  Dim slide As slide

  HandlerApplication.create Application
  Set slide = ActiveWindow.Selection.SlideRange(1)

  Dim ppt As Presentation
  Dim shapeToCopy As shape
  Dim copiedShape As shape
  Dim strTemplateFile As String
  strTemplateFile = "SlideTemplate.pptx"

  Set ppt = Application.Presentations.Open(BuildPath(ComponentsPath, strTemplateFile), msoTrue, msoFalse, msoFalse)
  Set shapeToCopy = ppt.slides(7).shapes(1)

  shapeToCopy.Copy
  Set copiedShape = slide.shapes.PasteSpecial(ppPasteShape)(1)
  ppt.Close
  copiedShape.Name = "TestName"
End Sub

我感谢任何帮助/解决方法。

4

2 回答 2

1

该问题是 Office 2010 中的错误,已在此修补程序中修复:http: //support.microsoft.com/kb/2345341

于 2011-01-10T09:38:33.267 回答
0

试试shapeToCopy.Duplicate吧。

于 2011-01-08T04:31:18.357 回答