отыскал на форумах макрос, применил к своей таблице все работает,но.... как подправить макрос чтоб искомый текст условия "Скрыть" искало не по всему диапазону а по указанному столбцу таблицы. (чтоб ускорить...таблица большая много столбцов и строк) и добавить чтоб автоматически макрос срабатывал при открытии и закрытии файла
[vba]
Код
Sub УдалениеСтрокПоУсловию() Dim ra As Range, delra As Range Application.ScreenUpdating = False ' отключаем обновление экрана
ТекстДляПоиска = "Скрыть" ' скрываем строки с таким текстом
' перебираем все строки в используемом диапазоне листа For Each ra In ActiveSheet.UsedRange.Rows ' если в строке найден искомый текст If Not ra.Find(ТекстДляПоиска, , xlValues, xlPart) Is Nothing Then ' добавляем строку в диапазон для скрытия If delra Is Nothing Then Set delra = ra Else Set delra = Union(delra, ra) End If Next ' если подходящие строки найдены - скрываем их If Not delra Is Nothing Then delra.EntireRow.Hidden = True End Sub
[/vba]
отыскал на форумах макрос, применил к своей таблице все работает,но.... как подправить макрос чтоб искомый текст условия "Скрыть" искало не по всему диапазону а по указанному столбцу таблицы. (чтоб ускорить...таблица большая много столбцов и строк) и добавить чтоб автоматически макрос срабатывал при открытии и закрытии файла
[vba]
Код
Sub УдалениеСтрокПоУсловию() Dim ra As Range, delra As Range Application.ScreenUpdating = False ' отключаем обновление экрана
ТекстДляПоиска = "Скрыть" ' скрываем строки с таким текстом
' перебираем все строки в используемом диапазоне листа For Each ra In ActiveSheet.UsedRange.Rows ' если в строке найден искомый текст If Not ra.Find(ТекстДляПоиска, , xlValues, xlPart) Is Nothing Then ' добавляем строку в диапазон для скрытия If delra Is Nothing Then Set delra = ra Else Set delra = Union(delra, ra) End If Next ' если подходящие строки найдены - скрываем их If Not delra Is Nothing Then delra.EntireRow.Hidden = True End Sub
искало не по всему диапазону а по указанному столбцу
[vba]
Код
Sub УдалениеСтрокПоУсловию() Dim iLastRow As Long Dim ra As Range, delra As Range Dim ТекстДляПоиска As String Application.ScreenUpdating = False ' отключаем обновление экрана ТекстДляПоиска = "Скрыть" ' скрываем строки с таким текстом ' перебираем все строки в используемом диапазоне листа ' For Each ra In ActiveSheet.UsedRange.Rows iLastRow = Range("A:E").Find("*", Range("A1"), xlValues, xlWhole, xlByRows, xlPrevious).Row For Each ra In ActiveSheet.Range("C1:C" & iLastRow) ' если в строке найден искомый текст If Not ra.Find(ТекстДляПоиска, , xlValues, xlWhole) Is Nothing Then ' добавляем строку в диапазон для скрытия If delra Is Nothing Then Set delra = ra Else Set delra = Union(delra, ra) End If Next ' если подходящие строки найдены - скрываем их If Not delra Is Nothing Then delra.EntireRow.Hidden = True End Sub
[/vba]
Цитата
искало не по всему диапазону а по указанному столбцу
[vba]
Код
Sub УдалениеСтрокПоУсловию() Dim iLastRow As Long Dim ra As Range, delra As Range Dim ТекстДляПоиска As String Application.ScreenUpdating = False ' отключаем обновление экрана ТекстДляПоиска = "Скрыть" ' скрываем строки с таким текстом ' перебираем все строки в используемом диапазоне листа ' For Each ra In ActiveSheet.UsedRange.Rows iLastRow = Range("A:E").Find("*", Range("A1"), xlValues, xlWhole, xlByRows, xlPrevious).Row For Each ra In ActiveSheet.Range("C1:C" & iLastRow) ' если в строке найден искомый текст If Not ra.Find(ТекстДляПоиска, , xlValues, xlWhole) Is Nothing Then ' добавляем строку в диапазон для скрытия If delra Is Nothing Then Set delra = ra Else Set delra = Union(delra, ra) End If Next ' если подходящие строки найдены - скрываем их If Not delra Is Nothing Then delra.EntireRow.Hidden = True End Sub