Доброго времени суток. Я не очень разбираюсь в VBA, обшарил похожие темы, но, к сожалению, не нашел решения своей проблемы. Суть в следующем: мне нужен макрос на одновременное скрытие и отображение строк на основании их значений, например: если в любой ячейке строки встречается значение = "Нет" - строка скрывается, если строка скрыта, а в ней искомого значения нет - она автоматически открывается. Нужно чтобы он работал автоматически при обновлении данных в ячейках. Удалось написать вот такой макрос: [vba]
Код
Private Sub Worksheet_Calculate()
Dim ra As Range, delra As Range, ТекстДляПоиска As String 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 Application.ScreenUpdating = True End Sub
[/vba]
На скрытие работает отлично, но сколько я ни бился над написанием кода на открытие строк без вмешательства пользователя - у меня ничего не получилось. В примере обновление данных осуществляется изменением даты из выпадающего списка. Заранее благодарю.
Доброго времени суток. Я не очень разбираюсь в VBA, обшарил похожие темы, но, к сожалению, не нашел решения своей проблемы. Суть в следующем: мне нужен макрос на одновременное скрытие и отображение строк на основании их значений, например: если в любой ячейке строки встречается значение = "Нет" - строка скрывается, если строка скрыта, а в ней искомого значения нет - она автоматически открывается. Нужно чтобы он работал автоматически при обновлении данных в ячейках. Удалось написать вот такой макрос: [vba]
Код
Private Sub Worksheet_Calculate()
Dim ra As Range, delra As Range, ТекстДляПоиска As String 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 Application.ScreenUpdating = True End Sub
[/vba]
На скрытие работает отлично, но сколько я ни бился над написанием кода на открытие строк без вмешательства пользователя - у меня ничего не получилось. В примере обновление данных осуществляется изменением даты из выпадающего списка. Заранее благодарю.AndreiCh
Здравствуйте. InExSu, спасибо, но это немного не то, что нужно. По моему условию всегда будут скрытые строки, т.к. у меня не получается написать код на открытие. Мне нужен именно полностью автоматический макрос. Был бы признателен, если бы подкорректировали/дополнили мой код.
Здравствуйте. InExSu, спасибо, но это немного не то, что нужно. По моему условию всегда будут скрытые строки, т.к. у меня не получается написать код на открытие. Мне нужен именно полностью автоматический макрос. Был бы признателен, если бы подкорректировали/дополнили мой код.AndreiCh