2017-01-23 22 views
1

我使用一个PowerPoint VBA脚本通过以下超链接,使用下面的代码来打开PDF文件:如何为使用PowerPoint VBA的超链接执行错误检查?

ActivePresentation.FollowHyperlink Address:=sFile 

变量sFile仅仅是一个与当地的文件路径,其中前面的代码生成的字符串。我想制定一些防错措施,以确保在尝试遵循超链接之前在地址处有文件。如果文件路径不正确,则会显示“运行时错误”-2147467259(80004005)“错误:Presentation(unknown member):无法打开指定的文件。”

本质上它告诉我该文件不存在(我发现这个错误是由于不小心让代码运行到它正确生成整个文件路径字符串之前打开超链接的那一行)。

无论如何,如果有人正在插手并更改文件名,我想要提供一条内容丰富的错误消息,而不是让脚本出错。

+0

'sFile'的一个更好的名字可以是'linkPath',或者'pdfPath'或者'pdfLinkPath';关于匈牙利语表示法,请参阅[*错误代码错误*](https://www.joelonsoftware.com/2005/05/11/making-wrong-code-look-wrong/)。 –

+0

我在开始时给所有的变量名称指定一个小写字母来表示它是什么类型的变量,即'i'代表'string'的'integer'或's'。从那里,我给它起一个名字,比如'File'或'Counter'或其他。 – ilarson007

+1

是的,是的 - 这就是“系统匈牙利”所确定的。这是“匈牙利应用程序”的混蛋,这是*使用前缀的实际有用的方式(阅读该文章,它很棒!)。在其标识符中编码变量的类型不会有任何用处。 –

回答

1
If Len(Dir$(sFile)) > 0 Then 
    '' The file's there, follow the link 
Else 
    ' The file's missing 
End if 
+0

此代码不起作用。我没有完整的,明确的文件路径(如果有人移动了用户正在工作的整个目录)。所以,我的字符串是这样的'“Sub Directory 1 \ Sub Directory 2 \ Filename.pdf”' – ilarson007

+0

如果你不知道目标文件的位置,你需要计算它。您可以从ActivePresentation.Path中提取路径并将其前缀添加到您的sFile变量中。 –

+0

@JamieGarroch奏效后,我并置呈现路径:'如果LEN(DIR $(ActivePresentation.Path& “\” &sFile))> 0 Then' ... – ilarson007