Excel VBA: Ошибки при использовании метода ClearContents

Автор Raven2009, 01 июня 2016, 12:32

Raven2009

Добрый день.

В файле стали появляться ошибки в коде .clearcontents. Это происходит, когда нажимаю кнопку Update Info. Не всегда, периодически после нескольких нажатий на кнопку. В основном это происходит, когда в соседние листы FOR PLAN TODAY и PICK DONE прогружаются новые данные. Все данные с этих листов попадают на на этот лист PLAN TODAY , а эти данные из удаленных баз access.

После такой ошибки закрываю файл с сохранением, открываю, и некоторое время он работает до следующей такой же ошибки... Суть в том, что перед прогрузкой новых данных, старые данные "чистятся" через .clearcontents, может здесь что не так?? Раньше этой ошибки не было.

Скриншот ошибок во вложении. Сам файл тоже вложил.

[вложение удалено администратором]

Администратор

Очистить ячейки можно ещё так:
.Formula = ""

Попробуйте эту очистку, может быть не будет ошибки.

Raven2009

Извиняюсь, а как мне прописать? Сейчас стоит это:

With .Range("B13").Resize(5000, 53)
            .ClearContents
            .Borders.LineStyle = 0
        End With

То есть мне надо так?

With .Range("B13").Resize(5000, 53)
            .Formula = ""
            .Borders.LineStyle = 0
        End With


Raven2009

Снова есть ошибка. Окно ошибки такое же и выделяется в коде теперь код этого метода, который вы предложили.

Но есть разница: для продолжения работы файла не надо его закрывать с сохранением, просто снова нажимаю Update Info и файл продолжает работать нормально... Есть ли варианты, почему это происходит?

Администратор

Сделайте два скриншота (как вы делали): скриншот сообщения об ошибке и скриншот с жёлтым выделением строки кода, в которой ошибка.

Администратор

Пока я предполагаю, что ошибка из-за проверки данных в столбце 28.

Администратор

Ещё у вас есть проверка данных в столбце 27. Удалите из столбца 27 проверку данных, т.к., как я понял, это не нужно.

Администратор

В столбце AB есть проверка данных, но туда макрос записывает данные. Вероятно макрос записывает данные, которых нет в списке проверки данных. Может быть из-за этого конфликт. Вот этот код записывает в столбец AB:
         .Range("AB13").Resize(ou.Count, 1) = rz

Администратор

Просто удалите проверку данных в столбцах AA и AB, если не используете проверку данных.
Может быть проблема в проверке данных.

Raven2009

Я вспомнил где это! Завтра попробую, спасибо. Отпишусь...

Raven2009

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