[identity profile] aterentiev.livejournal.com posting in [community profile] useful_faq
Прошу помощи у вселенского разума. Мне нужно было в Excel 2003 в VBA удалить содержимое таблицы за исключением первых двух строк. Следующая строчка помогла:

ThisWorkbook.Sheets(txtSheetName).Range("3:65535").clear

но при этом возник эффект, как будто все строки создались с пустым содержимым, т.е., например, скроллбар уменьшился и скроллит до последней 65535й строки... побочный эффект - размер файла вырос с пары килобайт до пары мегабайт

Как теперь эти строки с помощью того же VBA окончательно убить, чтобы скроллбар скроллил только по присутствующему содежимому и размер файла вернулся в границы допустимого? Уже пробовал:

- .SpecialCells(xlCellTypeBlanks).EntireRow.Delete
- бегать в цикле по Rows и делать .EntireRow.Delete - ужасно медленно
- бегать с бубном и гуглем

Ничего не помогло. Меня можно спасти или сразу в морг?

Upd:
Нашел проблему. Не знаю почему, но я удалял до 65535-й строки, а еще есть 65536-я. Clear со своей работой справляется. Всем спасибо, вопрос снят! Правильное решение:

ThisWorkbook.Sheets(txtSheetName).Range("3:65536").clear

Date: 2011-06-28 08:39 am (UTC)
From: [identity profile] webeaver.livejournal.com
Идеальный вопрос ;)

Date: 2011-06-28 08:41 am (UTC)
From: [identity profile] webeaver.livejournal.com
плюс возможно пригодится в жизни другим