检查7-Zip(64位/ 32位)的正确安装

nov*_*ice 2 vba 7zip

我的目标是避免来自VBA调试器的错误消息。需要检查已安装的7-zip版本,程序文件或程序文件(x86):

尝试做简单的“ IF”功能。

Dim PathZipProgram As String
strCommand As String

PathZipProgram = "C:\Program Files(x86)\7-Zip\7z.exe"
If Right(PathZipProgram, 1) Then
    PathZipProgram = PathZipProgram
Else
    PathZipProgram = "C:\Program Files\7-Zip\7z.exe"
End If

Shell strCommand

strCommand = """" & PathZipProgram & """ a -tzip """
Run Code Online (Sandbox Code Playgroud)

VBA找不到7zip。

Lou*_*uis 6

您可以function像这样检查文件是否存在:

Function FileExists(FilePath As String) As Boolean
Dim TestStr As String
    TestStr = ""
    On Error Resume Next
    TestStr = Dir(FilePath)
    On Error GoTo 0
    If TestStr = "" Then
        FileExists = False
    Else
        FileExists = True
    End If
End Function
Run Code Online (Sandbox Code Playgroud)

然后在您的代码中使用它:

Dim PathZipProgram As String
Dim strCommand As String

PathZipProgram = "C:\Program Files(x86)\7-Zip\7z.exe"

If Not FileExists(PathZipProgram) Then
    PathZipProgram = "C:\Program Files\7-Zip\7z.exe"
End If

Shell strCommand

strCommand = """" & PathZipProgram & """ a -tzip """
Run Code Online (Sandbox Code Playgroud)

希望以此为起点。