Это сработало для меня:
Sub OpenTextFile(textfile As String)
Const txtapp As String = "Notepad.exe"
Dim arg As String
Dim ierr As Double
arg = Trim$(txtapp & " " & Chr$(34) & Trim$(textfile) & Chr$(34))
ierr = Shell#(arg, vbNormalFocus)
End Sub
Символы объявления типа считаются устаревшим кодом, поэтому я избегаю их с объявлениями.(Однако я использовал их с Shell / Trim / Chr, чтобы избежать типа возвращаемого значения Variant.)
Я считаю, что ошибка, с которой вы сталкиваетесь, заключается в том, что ваш путь к файлу содержит пробелы.Попробуйте вместо WSHOM :
Sub OpenTextFile(textfile As String)
Dim oShell As Object
Set oShell = GetShell
If Not oShell Is Nothing Then
oShell.Run textfile
End If
End Sub
Function GetShell() As Object
On Error Resume Next
Set GetShell = CreateObject("WScript.Shell")
End Function