Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - VBA

Страница: 1 |

 

  Вопрос: Удаление скрытых столбцов и строк Excel Добавлено: 17.08.06 09:28  

Автор вопроса:  Verd | ICQ: 276115817 
Добрый день!
Появилась проблема с удалением скрытых строк и столбцов всего листа.Как это можно сделать средствами VBA ? Помогите,пожалуйста

Ответить

  Ответы Всего ответов: 6  

Номер ответа: 1
Автор ответа:
 -АлександР-



Вопросов: 55
Ответов: 1008
 Web-сайт: sham.clan.su
 Профиль | | #1
Добавлено: 17.08.06 18:52
А что значит "скрытых"? Это тех, у которых ширина и высота =< 0 что ли?

Ответить

Номер ответа: 2
Автор ответа:
 Дмит



Вопросов: 11
Ответов: 160
 Web-сайт: dimit.pochta.ru
 Профиль | | #2
Добавлено: 17.08.06 22:14
If Rows(i).Hidden Then Rows(i).Delete

Ответить

Номер ответа: 3
Автор ответа:
 ADSemenov.ru



Вопросов: 5
Ответов: 276
 Web-сайт: www.adsemenov.ru
 Профиль | | #3
Добавлено: 18.08.06 00:22
____ Я вот только думаю, что не так скоро (Then Rows(i).Delete).
____ Помнится мне, что после удаления строки (или столбца) вся коллекция строк (столбцов)переиндексируется. Это надо учитывать.

Ответить

Номер ответа: 4
Автор ответа:
 Дмит



Вопросов: 11
Ответов: 160
 Web-сайт: dimit.pochta.ru
 Профиль | | #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
Автор ответа:
 Verd



ICQ: 276115817 

Вопросов: 3
Ответов: 11
 Профиль | | #5 Добавлено: 18.08.06 10:12
Всем огромное спасибо. Все работает

Ответить

Номер ответа: 6
Автор ответа:
 Verd



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 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам