проблема с usedrange в новой книге

Весь MS Office, программирование на Visual Basic for Applications и MS VB

Модератор: Naeel Maqsudov

Ответить
district
Сообщения: 56
Зарегистрирован: 13 ноя 2007, 23:03
Откуда: Москва

Уважаемые, кто-нибудь сталкивался с некорректной работой usedrange? Скорее всего глюк, но вдруг что-то просто не знаю.

История такая - создаю новую книгу и переношу туда заголовок из исходной книги (он в одну строку). Смотрю usedrange - он показывает диапазон в две строки - захватывает еще и строку выше. Строка выше абсолютно пустая - проверял и чисткой и удалением, причем после удаления usedrange как ни в чем не бывало показывает новый диапазон из двух строк - с новой пустой строкой выше заголовка. Бился, бился, в конце концов сделал заплатку через intersect(.usedrange.offset(1,0),.usedrange). Может usedrange захватывает еще что-то - не только заполненный диапазон?

Примечание: currentregion вроде показывает при этом корректные данные, но я дальше по процедуре подставляю данные под столбец и используя usedrange сортирую их на финише подстановки, поэтому нужен именно usedrange (перестраховываюсь: могут быть и пустые строки при подстановке).
Аватара пользователя
Naeel Maqsudov
Сообщения: 2570
Зарегистрирован: 20 фев 2004, 19:17
Откуда: Moscow, Russia
Контактная информация:

Он захватывает еще и форматирование, но как-то хитро. Т.е. если где-то будет в пучстой ячейке назначен, скажем, жирный шрифт, то она будет входить в usedrange, но если взять и всему столбцу назначить жирный шрифт, то это уже не повлияет на usedrange.
В итоге, нельзя полагаться ни на какую систему, если там есть эвристичекие методы :)
district
Сообщения: 56
Зарегистрирован: 13 ноя 2007, 23:03
Откуда: Москва

О как. Не знал.

Заинтересовало что currentregion такими проблема не грешит. Заголовок я вставлял через specialpaste. Возможно если вставлю через copy без использования буфера (смотрю ответили на вопрос про specialpaste и порекомендовали код более продвинутый для копирования не только значений, но и форматов), то проблема исчезнет. Отчитаюсь по ходу дела.
Ответить