Страница: 1 |
Вопрос: Удаление скрытых столбцов и строк Excel | Добавлено: 17.08.06 09:28 |
Автор вопроса: ![]() |
Добрый день!
Появилась проблема с удалением скрытых строк и столбцов всего листа.Как это можно сделать средствами VBA ? Помогите,пожалуйста |
Ответы | Всего ответов: 6 |
Номер ответа: 1 Автор ответа: ![]() ![]() Вопросов: 55 Ответов: 1008 |
Web-сайт: Профиль | Цитата | #1 | Добавлено: 17.08.06 18:52 |
А что значит "скрытых"? Это тех, у которых ширина и высота =< 0 что ли? |
Номер ответа: 2 Автор ответа: ![]() ![]() ![]() Вопросов: 11 Ответов: 160 |
Web-сайт: Профиль | Цитата | #2 | Добавлено: 17.08.06 22:14 |
If Rows(i).Hidden Then Rows(i).Delete |
Номер ответа: 3 Автор ответа: ![]() ![]() ![]() ![]() Вопросов: 5 Ответов: 276 |
Web-сайт: Профиль | Цитата | #3 | Добавлено: 18.08.06 00:22 |
____ Я вот только думаю, что не так скоро (Then Rows(i).Delete).
____ Помнится мне, что после удаления строки (или столбца) вся коллекция строк (столбцов)переиндексируется. Это надо учитывать. |
Номер ответа: 4 Автор ответа: ![]() ![]() ![]() Вопросов: 11 Ответов: 160 |
Web-сайт: Профиль | Цитата | #4 | Добавлено: 18.08.06 09:32 |
Если удалять в цикле step -1, то индексация не важна.
For i = 100 To 1 Step -1
If Rows(i).Hidden Then Rows(i).Delete Next Можно и удалить всё сразу (и это быстрее) Dim i As Long, rg As Range
For i = 1 To 100 If Rows(i).Hidden Then Rows(i).Hidden = False If rg Is Nothing Then Set rg = Rows(i) Else: Set rg = Union(rg, Rows(i)) End If End If Next rg.Delete |
Номер ответа: 5 Автор ответа: ![]() ![]() ICQ: 276115817 Вопросов: 3 Ответов: 11 |
Профиль | Цитата | #5 | Добавлено: 18.08.06 10:12 |
Всем огромное спасибо. Все работает |
Номер ответа: 6 Автор ответа: ![]() ![]() ICQ: 276115817 Вопросов: 3 Ответов: 11 |
Профиль | Цитата | #6 | Добавлено: 29.08.06 11:32 |
Воспользовался вариантом :
For i = 100 To 1 Step -1 If Rows(i).Hidden Then Rows(i).Delete Next |
Страница: 1 |
|