Vba Can';无法从Excel打开Powerpoint演示文稿

Vba Can';无法从Excel打开Powerpoint演示文稿,vba,excel,Vba,Excel,我有一个文件可以在运行Win XP、Excel 2003的电脑上正常工作。PowerPoint驻留在Office 11中。需要转到另一台电脑相同的文件,但PowerPoint在Office 10中。我已经“工作”在我的文件很好,但不会打开所有PC上的PPT演示文稿。所以我需要一个不同的方式来打开它们。我使用Shell调用打开,这很好。我从Ron DeBruin那里找到了一个片段。不过,它在开放环境中部分失败。以下是重要的代码。PowerPoint会作为应用程序打开,但文件本身不会在应用程序中打开

我有一个文件可以在运行Win XP、Excel 2003的电脑上正常工作。PowerPoint驻留在Office 11中。需要转到另一台电脑相同的文件,但PowerPoint在Office 10中。我已经“工作”在我的文件很好,但不会打开所有PC上的PPT演示文稿。所以我需要一个不同的方式来打开它们。我使用Shell调用打开,这很好。我从Ron DeBruin那里找到了一个片段。不过,它在开放环境中部分失败。以下是重要的代码。PowerPoint会作为应用程序打开,但文件本身不会在应用程序中打开。我得到一个自动错误,并在同一弹出窗口中出现未指定错误。Excel是否有更好的方法找到PowerPoint所在的位置并以这种方式打开它

    Public Sub Start_Viewer(ProgFile)

      Dim objPPT As Object
      Dim PrgName As String

      Set objPPT = CreateObject("PowerPoint.Application")
      objPPT.Visible = True

      PrgName = Mid(ProgFile, InStrRev(ProgFile, "\") + 1, InStrRev(ProgFile, ".") - InStrRev(ProgFile, "\") - 1)

      objPPT.Presentations.Open FileName:="S:\Lab\EHS\SAFETY\" & PrgName & "\PPT\" & PrgName & ".ppt"
      Workbooks.Open FileName:="S:\Lab\EHS\SAFETY\" & PrgName & "\Quizzes\" & PrgName & " Quiz.xls"

    End Sub
objPPT.Presentations.Open是失败的部分。当我在某个地方的另一篇文章中看到打开后,我添加了FileNamea。不管有没有,它都会失败

仅适用于我的电脑的原始工作代码

      Public Sub Start_Viewer(ProgFile)

      '  This works for PowerPoint in this location only and on my work PC
      '  It fails on other pcs at work when PowerPoint resides elsewhere.

      '  ProgFile is the path passed from the calling subroutine _
         and opens the PowwerPoint Presentation for that file
      RetVal = Shell("C:\Program Files\Microsoft Office\Office\PPTView.exe " & Chr(34) & ProgFile & Chr(34), 1)

      Watched = MsgBox("Have you finished the presentation?", vbYesNo, "Verify Presentation Watched")
        Select Case 6
                 ' PrgName is JUST the extracted FileName (no path no extension) to give me folder names
                 PrgName = Mid(ProgFile, InStrRev(ProgFile, "\") + 1, InStrRev(ProgFile, ".") - InStrRev(ProgFile, "\") - 1)
                 Workbooks.Open FileName:="S:\Lab\EHS\SAFETY\" & PrgName & "\Quizzes\" & PrgName & "Quiz.xls"
               Case 7
                 Exit Sub
        End Select
      End Sub

您可能需要检查是否自动将Excel粘贴到PPT的过程

您说过它使用了
Shell
对象。为什么要放弃这种方式?具体来说,错误消息是怎么说的?它发生在哪条线上<代码>演示文稿。打开是一个有效呼叫。如果查看,您将看到
Filename
是参数的第一个参数,也是唯一必需的参数。您可以省略或保留
文件名:=
,因为这只是一个参数标识符。调试时,在使用
Presentations.Open
方法开始前,
PrgName
的值是多少?您是否已检查此路径是否有效?扩展名正确吗?@Bond OP写道:“我在我的电脑上“工作”得很好,但不会在所有电脑上打开PPT演示文稿。因此我需要一种不同的方式来打开它们。”我想这就是他放弃
Shell
对象的原因,但我不能肯定@Valhalla_33-你能发布你的原始代码吗?@CBRF23是的,这就是我放弃原始代码的原因。我不能100%肯定Shell cmd会像我今天看到的那样每次都工作。回到工作岗位后,我会尝试发布原始代码。至于你的第一个评论:它确实在我的工作电脑上起作用,但在其他电脑上不起作用。至于PrgName的值,该值作为调用子例程的路径传递(ProgFile),并且它会完整地传递它。如您所见,PrgName是通过从路径中提取文件名并删除扩展名获得的。当程序出错时,当我将光标移到PrgName上时,PrgName的值是正确的。您在哪一行得到错误?确切的错误消息是什么?我没有尝试将Excel中的任何内容粘贴到PPT文件。我正在尝试从Excel打开现有的PPT文件。