QuickBooksDev Ответов: 2

Ошибка 1004 в Excel 0x0800a03ec через VB.NET рабочий стол Windows приложение просто заявил, происходящие


У нас было несколько наших клиентов, получающих ошибку 1004 0x0800A03EC с 2 нашими программами, которые пытались читать excel. Это существующие программы, которые работают уже много лет.

Один клиент сделал восстановление системы, чтобы обойти эту проблему. (Это не повлияло на нашу программу, которая была установлена в течение некоторого времени). Другая говорила что-то об изменении даты ее профиля. Не знаю точно, что это означало, и она не является техническим специалистом.

Это происходит в Windows 10 и 7 в Excel 2016.

Поэтому я считаю, что какое-то обновление Office что-то сломало.

Мы обновили здесь, но не можем воссоздать проблему.

Любые идеи, кто угодно!!!!!

Что я уже пробовал:

Ничего, поскольку я не могу воссоздать его здесь.

Попросил клиента переустановить нашу программу.

CHill60

Есть что-нибудь в журнале событий? Не имея возможности увидеть код мы на самом деле не в состоянии сильно помочь

QuickBooksDev

У меня нет доступа к журналам событий, и я не знаю, что искать. Клиенты просто сообщают об ошибке, и я не нахожусь с ними в сети, чтобы увидеть ее. Я попробую.

Richard MacCutchan

Кроме того, есть различные сообщения об этом в других местах. Google для 0x0800A03EC и посмотрите, применимы ли какие-либо из этих предложений к вашему программному обеспечению.

QuickBooksDev

Я гуглю уже несколько дней. Поскольку эти приложения работают на одних и тех же клиентах в течение многих лет (и здесь), это не проблема кодирования, иначе, когда клиент делал восстановление системы для удаления обновлений Windows/Office, но не наше приложение, оно работало.

ZurdoDev

Вам придется заглянуть в журнал событий. Но мы понятия не имеем, что код пытается сделать, поэтому я не уверен, что вы хотите, чтобы мы вам сказали.

QuickBooksDev

Это было бы что-то вроде этого
Респ = Ву.Диапазон("А1.С20").значение

Я пытаюсь запланировать время с одним из клиентов, у которых была проблема, чтобы посмотреть журналы событий.

QuickBooksDev

Вот что мы нашли в журнале событий приложения

Установка подтверждения покупки из таблицы ACPI не удалась. Код ошибки:
0xC004F057

Это из серверной системы 2012 года.

QuickBooksDev

У другого клиента ничего не было в журналах событий. Таким образом, похоже, что ошибка ACPI не была связана.

2 Ответов

Рейтинг:
13

QuickBooksDev

Мы нашли проблему, но не ясно, почему.

Как было опубликовано выше наш код использовал значение диапазона

Ss = "A" & Row & "." & ColNames(UsedColsSht) & Row + 1
s = ws.Range(Ss).value

Примечание: этот период был использован, так что диапазон был чем-то вроде A1.C3 это продолжает работать в 7 из наших 8 систем, которые мы видели, но когда мы использовали этот формат на экране excel, мы получили поле#! ошибка. Это новое поведение Excel.

Изменение наших приложений на использование двоеточия вместо точки решило эту проблему. Так что диапазон теперь есть

Ss = "A" & Row & "." & ColNames(UsedColsSht) & Row + 1
or A1:C3

Опять же, это работало в большинстве систем, и это не может быть объяснено. В журналах событий ничего не было, и первоначальная публикация в заголовке была ложной тревогой.


Dave Kreskowiak

Почему вы использовали точку для описания диапазона? Это должно было быть двоеточие с самого начала. Когда вы создаете диапазон вручную в Excel, он всегда приходит с двоеточием для обозначения диапазона. Это была плохая идея идти против этой конвенции в вашем кодексе.

QuickBooksDev

Оригинальное приложение было сделано в течение 15 лет в VB6.

Экраны Excel принимали диапазон с точкой (точкой) вплоть до нескольких недель назад.

CHill60

Я писал приложения 20 лет назад в VB6, и нотация диапазона была такой же, как двоеточие тогда! Как Дэйв Кресковяк пытается указать, что код, возможно, никогда на самом деле не делал того, что вы думали, единственная разница теперь заключается в том, что он создает исключение

QuickBooksDev

Точка тоже работала. Работал с экрана и приложения.

Рейтинг:
1

Dave Kreskowiak

Не проблема с кодированием? Я бы так быстро туда не поехал.

То, что раньше не было проблемой кодирования, может стать проблемой кодирования позже из-за какого-то крошечного изменения, внесенного Microsoft в патч где-то для самого Excel, поставщика данных, который вы используете, или какого-то контекста безопасности где-то. Ваш код может столкнуться с этим изменением, ожидая некоторого поведения или возвращаемого значения, и больше не получает то, что он ожидает обратно.


QuickBooksDev

Вы немного опоздали с этим. Это уже было рассмотрено, когда я ответил на свой собственный вопрос выше.

Dave Kreskowiak

Да, но я указывал на то, что ваш кодекс с самого начала шел вразрез с общепринятыми нормами. Просто потому, что это работает сегодня, не означает, что это правильно сделано.

QuickBooksDev

Я это понимаю.

Но чего я не понимаю, так это как он может работать в 5 из 6 систем, и большинство из них являются новыми установками office на Windows 10. Если MS изменила свой код, то он должен потерпеть неудачу везде. Если бы он везде терпел неудачу, я бы посмотрел на код больше недели назад, и он был бы исправлен. Но поскольку он потерпел неудачу только в 1 из 6 систем, это больше похоже на проблему обновления.

Dave Kreskowiak

Вероятно, потому, что они находятся на другом пути для обновлений. Не все получают обновления одновременно.