我一直在尝试编写一个宏,它使用Excel中的表格通过powerpoint vba更新演示文稿。Powerpoint vba - 从excel中复制表格
下面是我在做什么
- 代码首先删除所有照片在演示文稿中,
- 然后打开Excel工作簿,copys命名范围,并粘贴到正确的幻灯片。
这个确切的代码工作正常,前两天,现在说的对象超出范围用于复制的范围“PL”。任何帮助或提示都会很棒,因为这是我第一次使用powerpoint vba。
valnPath = "G:\valnpath\"
PriorPath = "G:\Priorpath\"
Dim xlApp As Object
Dim xlWorkBook As Object
Dim XL As Excel.Application
Dim PPSlide As PowerPoint.Slide
Set xlApp = CreateObject("Excel.Application")
xlApp.Visible = True
xlApp.DisplayAlerts = False
xlApp.AskToUpdateLinks = False
Set xlWorkBook = xlApp.Workbooks.Open(valnPath & "Presentation Tables 1208.xlsx", True, False)
Set XL = GetObject(, "Excel.Application")
XL.DisplayAlerts = False
XL.AskToUpdateLinks = False
XL.Range("PL").Copy
ActivePresentation.Slides(3).Select
Application.ActiveWindow.View.PasteSpecial DataType:=ppPasteEnhancedMetafile
Set XL = GetObject(, "Excel.Application")
XL.DisplayAlerts = False
XL.AskToUpdateLinks = False
XL.Range("AvE").Copy
ActivePresentation.Slides(5).Select
Application.ActiveWindow.View.PasteSpecial DataType:=ppPasteEnhancedMetafile
Set XL = GetObject(, "Excel.Application")
XL.Quit
我做错了什么? 请帮助我,
谢谢
是否有一个原因,为什么你使用'GetObject的()'后你获得第二参考到Excel已经使用'CreateObject()'打开一个新实例?如果有多个excel实例打开,那么不能保证'GetObject()会返回哪个实例(它甚至可以返回一个隐藏的实例),所以你最好不要使用原始的' xlApp参考。 –
我没有特别的理由说明我为什么要这样做,如前所述,这是我在powerpoint vba的第一次尝试 - 我认为我必须“调用”excel电子表格才能从中复制。所以,而不是'XL.Range(“PL”)。复制',我会使用'xlApp.Range(“PL”)。复制'感谢您的输入,我试试这个。 – amymon87