Что такое код ошибки 0x800A01A8, выходящий из вызова Excel ActiveX?

Я использую LabVIEW для общения с Excel через его интерфейс ActiveX.

По какой-то причине через некоторое время после успешной записи в электронную таблицу я получил эту ошибку при попытке вызвать функцию a, которая что-то делает с диапазоном.

Извините, этот вопрос такой расплывчатый, но это потому, что я на самом деле использую другой набор инструментов, чтобы позаботиться о написании Excel.

Кто-нибудь знает, есть ли где-нибудь таблица поиска для вызовов Excel ActiveX?

Спасибо


person Community    schedule 13.10.2009    source источник


Ответы (2)


Этот код ошибки означает «Требуется объект».

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

person Robert Harvey    schedule 13.10.2009
comment
Досрочное освобождение в моем случае было правильным. Часто объекты зависят от других. Если вы удерживаете диапазон и закрываете книгу, из которой исходит диапазон, то доступ к диапазону вызовет, например, это исключение. Спасибо, эта подсказка помогла мне. - person jdehaan; 29.10.2010

Возможно, объект диапазона не обрабатывается должным образом в наборе инструментов. Если это набор инструментов отчетности NI, вы, возможно, можете открыть sub-vi и поместить зонды для устранения ошибки. (Однако это могло измениться. Я не смотрел его с тех пор, как он был переписан.)

Функции Excel, представленные в LV, по-разному называются «автоматизацией» или ее «объектной моделью». Информацию о том, где найти справку для него, можно найти на странице http://support.microsoft.com/kb/q222101/. Ряд ссылок с этой страницы содержат довольно хорошие образцы текстового кода, которые при желании можно преобразовать в код LV.

Конечно, на сайте NI есть ряд примеров Excel по адресу http://www.ni.com/analysis/excel.htm

person Joe Z    schedule 14.10.2009
comment
Это инструментарий NI, хотя он и был переписан в своей основе, это все те же вызовы ActiveX. Что меня беспокоит, так это то, что этот код работал нормально несколько недель, а потом просто упал. На самом деле это невозможно проверить, так как это встроенное приложение, а затем несколько недель в тесте. Моя единственная мысль заключается в том, что в этом конкретном фрагменте кода электронная таблица остается открытой и записывается несколько раз. Возможно, что-то закрыло лист? Это приведет к тому, что этот объект диапазона станет недействительным, поскольку фактическая электронная таблица больше не будет открыта, поэтому все ссылки будут мертвы. ??? - person ; 14.10.2009