Windows Desktop VB.Net Apps Получение ошибки 1004 0x800A03EC при чтении Excel из-за 0xC004F057 в журнале событий приложений - PullRequest
0 голосов
/ 19 ноября 2018

У нас есть несколько приложений для рабочего стола Windows, написанных на VB.2010 и VB.2017, которые долгое время работали у многих клиентов. Затем на прошлой неделе во вторник, 13 ноября 2018 года, мы начали получать электронные письма клиентов и звонки, в которых сообщалось, что приложения получают ошибку 1004 / 0x800A03EC. Нет обновлений приложения, где сделано. Работал один день, потом перестал.

Здесь не отказывает. Пробовал на 4 разных системах. W7 / Excel 2013, W10 с Office 365 / Excel 2016.

Сбои произошли на W10, 7 и 2012 R2.

Приложения только читают файл Excel.

код Код для инициализации ws

ExcelAppObj = New Excel.Application

ExcelAppObj.Visible = pVisible
WB = ExcelAppObj.Workbooks.Open(pFFn, True)
WS = pWB.Worksheets(1)
Ss = "A" & Row & "." & ColNames(UsedColsSht) & Row + 1
Dim War as object = WS.Range(Ss).Value  

В журнале событий приложений мы нашли это предупреждение Не удалось установить подтверждение покупки из таблицы ACPI. Код ошибки: 0xC004F057

Всего 2 предыдущих было Служба защиты программного обеспечения запускается. Параметры: Вызывающий = EXCEL.EXE

, что для меня означает, что какой-то компонент в Windows не считает его подлинным. Я знаю, что в системе с ошибкой выше Windows 2012 R2 и Office являются подлинными.

Я уверен, что это ошибка MS. Может кто-нибудь указать мне правильное направление и, надеюсь, исправление MS ??????

Спасибо и С Днем Благодарения!

1 Ответ

0 голосов
/ 22 ноября 2018

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

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

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

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

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

Ss = "A" & Row & "." & ColNames(UsedColsSht) & Row + 1

или A1: C3

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...