Как найти спецификацию хоста c 1004 Описания - PullRequest
0 голосов
/ 19 марта 2020

Я работаю над языком (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

Итак, мой вопрос:

  1. Есть ли собственный VBA способ получить этот хост-специфический (Excel / Word / PP / ...) 1004 сообщения об ошибках? (Я почти уверен, что нет)
  2. Или, есть ли в inte rnet место, которое перечисляет их все, эти описания хоста c Описания (а я был только пьян, чтобы google it; -)
  3. Или, знаете ли вы какие-либо файлы (ы) ресурсов Office (DLL / EXE / любой другой формат), которые я мог бы заглянуть внутрь, чтобы найти искомые строки Err.Description?

Кстати, я опытный разработчик - вам не нужно объяснять что-нибудь мне, но просто скажите мне, если знаете; -)

Это мои выводы на данный момент:

  1. Ошибка VBA # 1004 является фиктивной ошибкой / заполнителем, которой назначен обобщенный c, интернационализированный (!) Текст описания в зависимости от ERROR_CONTEXT.

  2. Реальная ошибка, связанная с ERROR_CONTEXT, существует только в RUNTIME, и она должна иметь дело с реальной указанной c ошибкой. То есть мы НЕ МОЖЕМ создать спецификацию c # 1004 Err.Description из нашего непосредственного окна, набрав что-то вроде этого: Ошибка 1004 {enter} Это только повторяет описание err.description по умолчанию.

  3. ERROR_CONTEXT всегда зависит от хоста VBA, на котором мы работаем при выполнении нашего кода. Таким образом, текстовое Err.Description никогда не конфликтует между разными хостами. НО, Err.Number делает, как всегда, 1004.

...