Я работаю над языком (Engli sh, немецкий, французский, ...) и хостом (Excel, Word, PP, Access, ...) agnosti c Обработка ошибок VBA и создание отчетов system (с использованием Excel в качестве моей платформы разработки VBA).
В последнее время я ловил ошибку VBA 1004, которая вызвала Err.Description, которое я никогда не «видел» до этой даты. До сих пор я потратил несколько часов, надеюсь, что не задумывался, чтобы выяснить, что скрывается за этим «magi c» номером ошибки 1004.
Лучшее общее объяснение, которое я нашел до сих пор (включая домены Microsoft), было:
Цитата >>> Ошибка 1004: ошибка приложения или объекта. Это очень распространенное общее сообщение об ошибке. Эта ошибка возникает, когда ошибка не соответствует ошибке, определенной VBA. Другими словами, ошибка определяется Excel (или каким-либо другим объектом) и распространяется обратно в VBA. << <a href="https://onlinelibrary.wiley.com/doi/pdf/10.1002/9781118257616.app3" rel="nofollow noreferrer"> Коды ошибок VBA
Итак, мой вопрос:
- Есть ли собственный VBA способ получить этот хост-специфический (Excel / Word / PP / ...) 1004 сообщения об ошибках? (Я почти уверен, что нет)
- Или, есть ли в inte rnet место, которое перечисляет их все, эти описания хоста c Описания (а я был только пьян, чтобы google it; -)
- Или, знаете ли вы какие-либо файлы (ы) ресурсов Office (DLL / EXE / любой другой формат), которые я мог бы заглянуть внутрь, чтобы найти искомые строки Err.Description?
Кстати, я опытный разработчик - вам не нужно объяснять что-нибудь мне, но просто скажите мне, если знаете; -)
Это мои выводы на данный момент:
Ошибка VBA # 1004 является фиктивной ошибкой / заполнителем, которой назначен обобщенный c, интернационализированный (!) Текст описания в зависимости от ERROR_CONTEXT.
Реальная ошибка, связанная с ERROR_CONTEXT, существует только в RUNTIME, и она должна иметь дело с реальной указанной c ошибкой. То есть мы НЕ МОЖЕМ создать спецификацию c # 1004 Err.Description из нашего непосредственного окна, набрав что-то вроде этого: Ошибка 1004 {enter} Это только повторяет описание err.description по умолчанию.
ERROR_CONTEXT всегда зависит от хоста VBA, на котором мы работаем при выполнении нашего кода. Таким образом, текстовое Err.Description никогда не конфликтует между разными хостами. НО, Err.Number делает, как всегда, 1004.