У меня есть путь к целевому файлу, который структурирован как пример ниже.
C:\Program Files\Test\foobar.exe /G
Что мне нужно сделать, так это выполнить этот файл с помощью команды vba shell()
.
Как мне форматировать путь к файлу, чтобы сообщить shell()
, что есть аргумент, который ему нужно вызвать вместе с запуском .exe
То, что я прочитал/попробовал (безрезультатно), приведен ниже с результатами справа.
file = """C:\Program Files\Test\foobar.exe"" /G" <---Bad file name or number (Error 52)
shell(file)
file2 = "C:\Program Files\Test\foobar.exe /G" <---file never found
shell(file2)
Мне удалось запустить другой .exe, используя shell(), поэтому я знаю, что это не проблема с vba или функцией.
Пример:
works = "C:\Program Files\Test\test.exe"
shell(works)
Я не особенно знаком с процессом, связанным с выполнением файлов, для которых требуются дополнительные параметры, поэтому, если я пропущу или вам нужна дополнительная информация, пожалуйста, дайте мне знать.
Это работает для меня (Excel 2013):
Public Sub StartExeWithArgument()
Dim strProgramName As String
Dim strArgument As String
strProgramName = "C:\Program Files\Test\foobar.exe"
strArgument = "/G"
Call Shell("""" & strProgramName & """ """ & strArgument & """", vbNormalFocus)
End Sub
С вдохновением отсюда https://stackoverflow.com/questions/3447667/open-with-options-through-vbscript.
Вот несколько примеров использования Shell в VBA.
Откройте stackoverflow в Chrome.
Call Shell("C:\Program Files (x86)\Google\Chrome\Application\chrome.exe" &
" -url" & " " & "www.stackoverflow.com",vbMaximizedFocus)
Откройте текстовый файл.
Call Shell ("notepad C:\Users\user\Desktop\temp\TEST.txt")
Открыть приложение.
Call Shell("C:\Temp\TestApplication.exe",vbNormalFocus)
Надеюсь, это поможет!
Нижеприведенный код поможет вам автоматически открыть файл .exe из excel...
Sub Auto_Open()
Dim x As Variant
Dim Path As String
' Set the Path variable equal to the path of your program installation
Path = "C:\Program Files\GameTop.com\Alien Shooter\game.exe"
x = Shell(Path, vbNormalFocus)
Конец Sub