Я не совсем уверен, что понимаю вашу цель. Если бы я это сделал, я бы, вероятно, не согласился.
Этот код вы разрабатываете? Я почти никогда не использую обработку ошибок в разрабатываемом коде. Я хочу, чтобы интерпретатор остановился на утверждении, которое выдает ошибку. Я хочу понять, почему произошла эта ошибка. Что я мог сделать, чтобы избежать ошибки? Я не смог проверить, существует ли файл? Не удалось проверить доступность пути? Я добавлю отсутствующий код, прежде чем делать что-либо еще.
К тому времени, когда вы закончите разработку, вы должны планировать, чтобы не было условия ошибки, для которого вы не включили надлежащий код. Конечно, это невозможно; Вы не можете сделать свой код безошибочным, потому что дураки настолько изобретательны. Версия, которую вы выпускаете для пользователей, должна содержать обработку ошибок.
Но вы не могли предоставить этот код пользователям, так как он остановился бы без предупреждения. Будет ли пользователь догадываться, что что-то пошло не так с макросом, или он предположит, что это должно было произойти? Если они решат, что макрос не удался, что они скажут вам? «Он не сделал то, что я ожидал, и я не знаю, почему». Что ты собираешься сказать в ответ? "Что ты делал?" Я не думаю, что у меня когда-либо был пользователь, дающий правдоподобное описание того, что он делал во время сбоя. По крайней мере, вы хотите:
Call MsgBox("Sorry I have had an unrecoverable error within QOScode()." & _
" Please record: " & Err.Number & " " & Err.Description & _
" and report to extension 1234")
При этом пользователь не задается вопросом, если что-то пошло не так, и вы знаете, где оно пошло не так и, если повезет, почему.