我正在使用VBA通过添加对库的引用来创建单词实例,但这会导致一个问题,因为存在一些没有单词的机器。
这会导致在这些计算机上启动时出现运行时错误。无法捕捉到这个错误。
但是,我尝试通过类似的东西在VBA中创建一个对象
Dim oWshShell As WshShell
Set oWshShell = New WshShell
' *** TEST REGESTRY
Dim tmp As String
tmp = oWshShell.RegRead("HKEY_CURRENT_USER\SOFTWARE\Microsoft\Office\15.0\Word\Options\PROGRAMDIR")
Debug.Print tmp
tmp = tmp + "winword.exe"
Dim oWord As Object
Set oWord = Shell(tmp)
但我的问题是oWord不是Word.Application的对象。那么如何处理呢?
很高兴能获得像Word.Application一样的所有功能。
答案 0 :(得分:1)
您不必使用shell,直接使用COM工厂:
Function openWordApp() As Object
On Error Resume Next
Set openWordApp = CreateObject("Word.Application")
If openWordApp Is Nothing Then
msgBox "Word not installed on this machine"
Else
openWordApp.Visible = True
End If
End Function
在调用者中,检查返回的值是否为。