Запуск файла Bat из Excel VBA

#excel #vba

Вопрос:

У меня есть следующий код VBA, который работает:

 Sub TfrSec()
Dim argh As Double
argh = Shell("C:UsersAvishenDesktopTransfer Rates File.bat", vbNormalFocus)
End Sub
 

Я хочу изменить Авишен так, чтобы он автоматически выбирал текущего пользователя, который входит в систему в Windows.

Спасибо за помощь

Комментарии:

1. Проверять Environ("Username") . Я думаю, это именно то, что тебе нужно.

2. Разве нет также «рабочего стола» среды?

3. @Andreas нет, но для пользовательского файла, Environ("USERPROFILE") который дает вам C:UsersAvishen

4. Я, наверное, думал о специальных папках CreateObject("WScript.Shell").specialfolders("Desktop")

5. @Andreas не видит в этом никакой пользы по сравнению с использованием Environ("USERPROFILE") amp; "Desktop" .

Ответ №1:

Используйте функцию Environ для извлечения переменных среды, заданных в Windows.

 Sub TfrSec()
    Dim argh As Double
    argh = Shell(Environ("USERPROFILE") amp; "DesktopTransfer Rates File.bat", vbNormalFocus)
End Sub
 

Список доступных переменных в Windows 10 см. Здесь.