Есть ли способ получить код VBA, чтобы проверить два разных места для WINRAR - PullRequest
0 голосов
/ 02 июля 2019

Приведенный ниже код извлекает RAR-файл, но, поскольку я не уверен в местонахождении WinRar, мне понадобится проверить два местоположения.Приведенный ниже код приводит к ошибке несоответствия типов в WinRarPath.

Sub Extract()

Dim RarIt As String
Dim Source As String
Dim Desti As String
Dim WinRarPath As String

WinRarPath = "C:\Program Files\WinRar\" Or "C:\Program Files (x86)\WinRar\"
Source = "C:\VBA\VBA.rar"
Desti = "C:\VBA\"

RarIt = Shell(Chr(34) & WinRarPath & "WinRar.exe" & Chr(34) & " e " & Chr(34) & Source & Chr(34) & " " & Chr(34) & Desti & Chr(34), vbNormalFocus)

Application.Wait (Now + TimeValue("0:00:02"))

Kill Source

End Sub

Я надеюсь, что он проверит любое место и запустится.

1 Ответ

0 голосов
/ 10 июля 2019
Sub Extract()

Dim RarIt As String
Dim Source As String
Dim Desti As String
Dim WinRarPath As String
Dim WinRarPathX86 As String
WinRarPath = "C:\Program Files\WinRar\"
WinRarPathX86 = "C:\Program Files (x86)\WinRar\"
Source = "C:\VBA\VBA.rar"
Desti = "C:\VBA\"

If Dir("C:\Program Files\WinRar\", vbDirectory) <> "" Then
        RarIt = Shell(Chr(34) & WinRarPath & "WinRar.exe" & Chr(34) & " e " & Chr(34) & Source & Chr(34) & " " & Chr(34) & Desti & Chr(34), vbNormalFocus)
    Else
        RarIt = Shell(Chr(34) & WinRarPathX86 & "WinRar.exe" & Chr(34) & " e " & Chr(34) & Source & Chr(34) & " " & Chr(34) & Desti & Chr(34), vbNormalFocus)
End If

Application.Wait (Now + TimeValue("0:00:02"))

Kill Source

End Sub
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...