Форум по VBA и MS Office

VBA, Excel => VBA, макросы в Excel => Тема начата: Raven2009 от 01 июня 2016, 12:32

Название: Excel VBA: Ошибки при использовании метода ClearContents
Отправлено: Raven2009 от 01 июня 2016, 12:32
Добрый день.

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

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

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

[вложение удалено администратором]
Название: Re: Excel VBA: Ошибки при использовании метода ClearContents
Отправлено: Администратор от 01 июня 2016, 13:20
Очистить ячейки можно ещё так:
.Formula = ""

Попробуйте эту очистку, может быть не будет ошибки.
Название: Re: Excel VBA: Ошибки при использовании метода ClearContents
Отправлено: Raven2009 от 01 июня 2016, 15:46
Извиняюсь, а как мне прописать? Сейчас стоит это:

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

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

With .Range("B13").Resize(5000, 53)
            .Formula = ""
            .Borders.LineStyle = 0
        End With
Название: Re: Excel VBA: Ошибки при использовании метода ClearContents
Отправлено: Администратор от 01 июня 2016, 16:08
Да, так.
Название: Re: Excel VBA: Ошибки при использовании метода ClearContents
Отправлено: Raven2009 от 01 июня 2016, 20:23
Снова есть ошибка. Окно ошибки такое же и выделяется в коде теперь код этого метода, который вы предложили.

Но есть разница: для продолжения работы файла не надо его закрывать с сохранением, просто снова нажимаю Update Info и файл продолжает работать нормально... Есть ли варианты, почему это происходит?
Название: Re: Excel VBA: Ошибки при использовании метода ClearContents
Отправлено: Администратор от 01 июня 2016, 20:56
Сделайте два скриншота (как вы делали): скриншот сообщения об ошибке и скриншот с жёлтым выделением строки кода, в которой ошибка.
Название: Re: Excel VBA: Ошибки при использовании метода ClearContents
Отправлено: Администратор от 01 июня 2016, 21:01
Пока я предполагаю, что ошибка из-за проверки данных в столбце 28.
Название: Re: Excel VBA: Ошибки при использовании метода ClearContents
Отправлено: Администратор от 01 июня 2016, 21:05
Ещё у вас есть проверка данных в столбце 27. Удалите из столбца 27 проверку данных, т.к., как я понял, это не нужно.
Название: Re: Excel VBA: Ошибки при использовании метода ClearContents
Отправлено: Администратор от 01 июня 2016, 21:09
В столбце AB есть проверка данных, но туда макрос записывает данные. Вероятно макрос записывает данные, которых нет в списке проверки данных. Может быть из-за этого конфликт. Вот этот код записывает в столбец AB:
         .Range("AB13").Resize(ou.Count, 1) = rz
Название: Re: Excel VBA: Ошибки при использовании метода ClearContents
Отправлено: Администратор от 01 июня 2016, 22:35
Просто удалите проверку данных в столбцах AA и AB, если не используете проверку данных.
Может быть проблема в проверке данных.
Название: Re: Excel VBA: Ошибки при использовании метода ClearContents
Отправлено: Raven2009 от 01 июня 2016, 23:09
Я вспомнил где это! Завтра попробую, спасибо. Отпишусь...
Название: Re: Excel VBA: Ошибки при использовании метода ClearContents
Отправлено: Raven2009 от 02 июня 2016, 21:48
Ошибка наверно не в этом. Я удалил проверку данных, но сообщения с ошибками все равно лезут периодически. К сожалению не удалось зафиксировать, на рабочем компе не работает кнопка скриншота. Посмотрю сегодня-завтра еще и подумаю.