2016-01-26 14 views
1

У меня есть огромный проект vba с 10 сложными пользовательскими формами и с множеством других функций и подсистем. Тогда у меня есть отладки открыть окно все отлично работает и в следующий раз, когда я открыть файл, он работает также хорошо, но если я открываю это 2-й или 3-й раз (без открытия отладки окна) я получаю следующее сообщение об ошибке:Ошибка -2147417848 (& H80010108): вызванный объект отключился от своих клиентов

Error -2147417848 (&H80010108): The object invoked has disconnected from its clients.

Через несколько часов я нашел источник этой ошибки, когда я исключить следующую строку он отлично работает:

ws.Cells(nr + 5, 7) = Me.tb_COT_MP_SM.Value 

Этот код передает значение одного из текстовых полей основного большого UserForm в клетке. Я прочитал article, связанный с этой ошибкой, и попытался удалить это текстовое поле как объект MSForms, но это не помогло.

Заранее благодарю за любую поддержку.

+0

Если он передает данные из ячеек в текстовое поле, тогда текстовое поле должно быть первым (до равного) .Like .. 'Me.tb_COT_MP_SM = ws.Cells (nr + 5, 7)' Попробуйте также удалить '.value' из' Me.tb_COT_MP_SM. Value' – harun24hr

+0

@ harun24hr извините, это наоборот. Я попытался удалить значение, спасибо за этот совет. –

+0

Вы пытались изменить «Я». к реальному объекту? Например: ActiveWorksheet. или «Таблицы» («anyname»). или что это такое – Kathara

ответ

0

Что-то где-то в вашем коде имеет либо выгружен или уничтожен или не создали ни WS или меня (вероятно, Ws)

+0

Я уже пытался изменить «Me.tb_COT_MP_SM.Value» с некоторым текстовым значением, и код работал. Я попытаюсь найти недостающие ws, но я думаю, что проблема скрывается в правой части уравнения –

+0

, вы можете попробовать заменить меня. с полным именем формы –

0

Я думаю, что это будет работать (но я не знаю, почему):

ws.Cells(nr + 5, 7).Value = CStr(Me.tb_COT_MP_SM.Value) 
+0

спасибо, но нет .. –

Смежные вопросы