Из вашего комментария я понял, что вы, вероятно, выполняете другие команды оболочки в init
и updateIndex
.
Что должно быть ясно, так это то, что когда вы выполняете команду Shell через объект Shell в VBA , поведение по умолчанию - не ждать завершения команды оболочки перед запуском следующей строки кода.
Если вы хотите, чтобы Excel дождался завершения команды оболочки перед продолжением, вы можете взглянуть на ответы на этот вопрос .
То есть, если вы хотите, чтобы Excel был полностью открыт перед запуском любых команд оболочки, вы можете использовать MsgBox, как вы изначально планировали, но он должен быть VBA MsgBox, который вы бы просто вызывали следующим образом:
MsgBox "Measurement will begin shortly"
Поток VBA будет ждать нажатия кнопки «ОК» перед продолжением выполнения.