2015-08-20 3 views
0

Я постоянно получаюВызванный объект был отключен от клиентов при вставке строки

Вызванный объект был отключен от клиентов

запуск этой линии

Workbooks("LastParamChanges").Sheets("LastChanges").Range("A9").EntireRow.Insert shift:=xlDown 

Когда ошибка сообщение появляется, и я нажимаю debug для перехода к этой строке, я нажимаю F8, чтобы перейти к следующей строке, другой er ROR выскакивает сообщение говоря

Runtime Ошибка 1004: Вставить метод класса Range не удалось

У меня также есть Application.DisplayAlerts и Application.EnableEvents значение ЛОЖЬ, если это помогает.

+1

Вы уверены, что рабочая книга с именем «LastParamChanges» открыта, а не ReadOnly перед этой строкой кода? – PatricK

+0

Да, дело в том, что код не работает через некоторое время, а не в первый раз, когда он запускается, поэтому я не уверен, что происходит – user1943079

+0

(1) Если вы ищете «excel vba Object invoked disconnected from its clients», вы получит много хитов, обсуждающих эту проблему. Я нашел ссылку из [этого ответа] (http://stackoverflow.com/a/14831492/973283), особенно полезной для понимания проблемы. Что происходит между использованием этого заявления? Не могли бы вы закрыть книгу или переименовать рабочий лист? –

ответ

0

У меня была та же проблема. Решение, которое работало для меня, чтобы добавить этот код перед .Insert высказыванием:

Dim oldValue As Variant 
With Workbooks("LastParamChanges").Sheets("LastChanges") 
    .Range("B1").Activate 
    oldValue = .Range("B1").Value 
    .Range("B1").ClearContents 
    .Range("B1").Value = oldValue 
End With 

кажется, что сначала нужно отредактировать лист перед установкой каких-либо строк.

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