背景知识-我已经使用VBA几个月了,编写了一个程序来加快我的工作速度。这涉及到打开文件,此刻,我已经使用以下子程序通过Autocad打开文件:
Sub OpenAutocadFile(AutocadFile)
If AutocadVariable Is Nothing Then
Set AutocadVariable = CreateObject("AutoCAD.Application")
If AutocadVariable Is Nothing Then
MsgBox "Could not start Autocad"
Exit Sub
End If
Else
Set AutocadVariable = GetObject(, "AutoCAD.Application")
End If
Set AutocadApp = AutocadVariable
AutocadApp.Visible = True
AutocadApp.Documents.Open (AutocadFile)
End sub
我知道这并不完美,但是大多数情况下都可以。
我也一直在使用以下方式打开PDF文件:
ActiveWorkbook.FollowHyperlink(PDFFile)
现在我的问题是,使用一种方法或另一种方法在VBA中打开文件有什么好处?
我已经知道,通过专用子程序,您可以指定要使用的程序,而通过超链接方法,它将使用默认程序。 除此之外,我还缺少什么吗?一个跑得比另一个快吗?一种方法对某些文件类型是否更可取,而另一种方法对其他文件类型更可取?
答案 0 :(得分:1)
区别在于功能,因为他们做不同的事情以获得相似的结果。
CreateObject
方法使用显式应用程序打开引用,而FollowHyperlink
使用为该协议注册的默认应用程序,并将引用传递给该协议。
哪个是更可取的取决于开发人员,因为有时您需要用户期望的行为(“在我最喜欢的PDF查看器中打开PDF”),而有时您可能不希望这样做。例如,也许您知道此系统的“打开方式”处理程序没有执行您或用户想要的操作。
一个速度是否比另一个速度实际上并不那么重要,因为它们适用于不同的用例。