Excel VBA无法在网络驱动器

时间:2015-06-10 20:12:41

标签: excel excel-vba powerpoint vba

我有一个非常旧的VBA文件,由其他人用有限的评论来创建,以解释它。该文件是一个训练文件,询问名称,然后提供您可以查看以训练的文件名。变量从5个不同的子程序传递。

RetVal = Shell("C:\Program Files\Microsoft Office\OFFICE11\PPTVIEW.EXE  " & ProgFile, 1)

这是从Excel打开PowerPoint 4.0文件的行。 ProgFile是传递的变量。

我的问题:如果我将文件放在C:\驱动器上的目录中(说C:\Training\Forklift.ppt),文件打开正常,程序会按预期执行。

但是:将相同的PPT文件放在我的网络驱动器(S:\Training\Forklift.ppt)上我收到三条错误消息,因为弹出窗口没有编码到程序中(我怀疑是系统错误)。 (路径名称已更改为显示为S:\

  1. PowerPoint Viewer无法找到文件RECORDS
  2. PowerPoint Viewer无法找到文件Safety
  3. PowerPoint Viewer无法找到文件Forklift.ppt
  4. RECORDSSafety不是任何子例程使用的文件。是因为Shell功能打开PowerPoint还是其他一些我忽略的神秘事物?

    我正在尝试重写子例程,这是给我提出问题的未更改代码的一部分。

2 个答案:

答案 0 :(得分:1)

我的猜测是RECORDSSafety都是某种在Forklift.ppt演示文稿中链接的外部文件。当事情发生变化时,PowerPoint因打破演示文稿而臭名昭着。如果PPT中有任何链接,则需要更新它们以指向S:驱动器上的新位置。

您可以通过为其编写一些VBA代码来自动更改链接,但如果这是一次性移动,则可能不值得 - 只需手动重做即可。

答案 1 :(得分:1)

尝试用引号括起你的arg:

RetVal = Shell("C:\Program Files\Microsoft Office\OFFICE11\PPTVIEW.EXE " & Chr(34) & ProgFile & Chr(34), 1) 
相关问题