У меня проблема с поиском / пониманием того, как решить следующую проблему при запуске файла .bat
в VBA
в Excel
. Я получаю приглашение Open File - Security Warning
при попытке выполнить его.
Проблема в том, что у меня нет административных привилегий, поэтому я не могу установить файлы .bat
как игнорируемые в этом приглашении, и этот файл .bat
создан мной самостоятельно, поэтому я не понимаю, почему мой компьютер помечает его как потенциально опасный.
Если бы кто-нибудь мог объяснить обходной путь и почему такая проблема возникает, несмотря на то, что это пользовательский .bat
файл, я был бы очень признателен. В качестве обходного пути я имею в виду изменение кода, который мне в настоящее время приходится решать с этой проблемой, без необходимости проходить через администраторов.
Ниже приведен фрагмент кода, относящийся к проблеме, спасибо:
sub test()
'some stuff
Open MY_FILENAME For Output As #FileNumber
Print #FileNumber, FileContents
Print #FileNumber, "exit"
Close #FileNumber
'run batch file
Dim wsh As Object
Set wsh = VBA.CreateObject("WScript.Shell")
Dim waitOnReturn As Boolean: waitOnReturn = True
Dim windowStyle As Integer: windowStyle = 1
Dim rtn As Integer
rtn = wsh.Run(Chr(34) & MY_FILENAME & Chr(34), windowStyle, waitOnReturn)
end sub
Я должен добавить, что если запустить оболочку примерно так, у меня нет проблем:
rtn = Shell(MY_FILENAME, vbNormalFocus)
За исключением того, что код продолжит работать, несмотря на то, что оболочка не закрывается и не завершает свое выполнение. Мне нужно, чтобы оболочка остановилась, пока она не выполнила свою задачу.