VBA错误处理,将错误定义为错误

时间:2013-05-07 09:09:20

标签: vba error-handling

我通过VBA宏启动Python。如果Python路径不好,我想要一个正确的错误消息。 我在2台不同的计算机上使用这个宏,并且这两台计算机上的Python路径不一样。 2个路径位于2个不同的单元格名称path_Python和path_Python_2 这是我的代码:

Function launchPython() As Boolean
Dim pathScript As String

pathScript = [path_files] + "code.py"

On Error GoTo err
    Shell [path_Python].Value & " " & pathScript
    launchPython = True
    Exit Function

err:
    On Error GoTo err2
        Shell [path_Python_2].Value & " " & pathScript
        launchPython = True
err2:
    launchPython = False
    MsgBox "Error: please check Python paths"

End Function

问题是,当2路径不好时,而不是转到err2,我有一个阻塞的VBA错误消息

err:
    On Error GoTo err2
        Shell [path_Python_2].Value & " " & pathScript

我该如何解决这个问题? 非常感谢你

1 个答案:

答案 0 :(得分:0)

我会检查文件是否存在并尝试将其命名为可能丢失的路径。您可以使用许多函数之一,例如http://allenbrowne.com/func-11.html中的FileExists,或者只检查dir $返回非空白。

Dim Path as string

path = path_python

if dir(path) = "" then 
  path = path_python2
  if dir(path) = "" then err.raise
end if

shell path  & " " & pathScript