Мне нужно сделать асинхронную работу. В цикле из MAIN.xlsm я хочу вызвать скрипт VB (с другими параметрами), чтобы открыть больше экземпляров Excel, где выполняется метод .refreshAll
. (Таким образом, я могу открыть больше файлов одновременно и не нужно ждать синхронного выполнения VBA в Excel).
Последнее, что вызывает проблемы, - это разрешения в Shell. Чтобы сделать это проще, я упростил код (без цикла и параметров). Sub OpenShell
в модуле Excel VBA. UAC выключен, я локальный администратор на ПК.
Sub OpenShell()
strShell = "cmd.exe /k cscript " & ThisWorkbook.Path & "\1.vbs"
Shell strShell
Exit Sub
VB скрипт имеет только одну строку: Wscript.Echo "Running"
Результат в оболочке: «Доступ запрещен».