2017-05-26 98 views
1

我有一个受密码保护的PowerPoint文件,因为坦率地说,与文件交互的操作员是计算机文盲,并且如果它是可编辑的,可能会意外销毁该文件。如何允许VBA代码在只读PowerPoint文件中运行?

我应该说,之前,我更深刻......我搜查,发现了这个问题,它有一个解决方案,不会在这种情况下工作:Click Me

我写了一个简单的VBA脚本,让他们搜索零件号码,而不是使用PowerPoint幻灯片找到正确的零件号(这可以追溯到未用于计算机或甚至不知道PowerPoint是什么)。

无论如何,脚本在我的电脑上运行良好,但显然我必须输入密码才能编辑VBA代码。当我尝试以只读模式运行代码时,出现错误"Run-time error '-2147467259 (80004005)' Presentation (unknown member) : Invalid request. Presentation cannot be modified."

本质上,我看到代码无法在只读模式下执行该文件。

误差实际上发生在这个片段的代码:

'Follow the hyperlink to opent the correct file 
    If Len(Dir$(ActivePresentation.Path & "\" & sFile)) > 0 Then 
     ActivePresentation.FollowHyperlink Address:=sFile 
    Else 
     MsgBox "No file exists at path " & ActivePresentation.Path & "\" & sFile 
    End If 
就行 ActivePresentation.FollowHyperlink Address:=sFile

任何我可以做的,以不同的方式打开PDF文件,在只读模式下的演示文稿?

+0

为什么没有链接的问题/解决方案在这种情况下工作? –

+0

由于风险太大,我无法取消保护工作表。在过去,我们的一些员工本着诚意,试图纠正一个问题,最终重新编程了一个直流转矩工具。我想完全避免一些不小心搞乱文件的人的困惑和头痛。 – ilarson007

回答

0

您无法打开密码保护文件而不提供密码。 要通过提供密码打开VBA文件,你可以这样做:

设置oPres = Presentations.Open( “C:\ TEMP \ open.pptx :: PWD ::”)

其中c :\ temp \ open.pptx是文件的路径,pwd是密码。

由于此文件已打开,您的同事仍然可以对其进行编辑,因此您可能会考虑将真实文件复制到临时文件夹,可能在某些不太可能的情况下,打开复印件而不是原件。然后在下次运行任何代码时删除任何现有的副本。

+0

我很难理解为什么它不会打开,因为我打开了一个单独的文件(一个pdf文件)而不是密码保护的PowerPoint文件。 PPT文件打开一次并保持打开状态。 – ilarson007

+0

您是否考虑使用ShellExecute来启动PDF?如果你的谷歌加上VBA,你会发现一些例子。 –

相关问题