Спасибо, большое за помощь, Мастер! то, что надо ...только хотел бы попросить ещё прикрепить макрос, а то надо данный алгоритм выполнять для разных файлов; СПАСИБО!
Спасибо, большое за помощь, Мастер! то, что надо ...только хотел бы попросить ещё прикрепить макрос, а то надо данный алгоритм выполнять для разных файлов; СПАСИБО!slavka_g_xl
Private Sub Worksheet_Change(ByVal Target As Range) If Target.Address(0, 0) <> "C2" Then Exit Sub Dim r As Range: Set r = Range("C3:H3") Application.ScreenUpdating = False r.EntireColumn.Hidden = True Range(r.Cells(1), r.Cells(Target)).EntireColumn.Hidden = False Application.ScreenUpdating = True End Sub
Private Sub Worksheet_Change(ByVal Target As Range) If Target.Address(0, 0) <> "C2" Then Exit Sub Dim r As Range: Set r = Range("C3:H3") Application.ScreenUpdating = False r.EntireColumn.Hidden = True Range(r.Cells(1), r.Cells(Target)).EntireColumn.Hidden = False Application.ScreenUpdating = True End Sub
Спасибо большое!!! уважаемые профи, хотел попросить Вас помочь в решении ещё одного вопроса... надо скрывать массивы информации при определённом значении ячейки: есть 3 массива - 1,2,3; - соответственно должен отображаться 1, а 2 остальных скрываться. Спасибо! p.s. Пример прилагаю! выложите пожалуйста также сам макрос! Спасибо!
Спасибо большое!!! уважаемые профи, хотел попросить Вас помочь в решении ещё одного вопроса... надо скрывать массивы информации при определённом значении ячейки: есть 3 массива - 1,2,3; - соответственно должен отображаться 1, а 2 остальных скрываться. Спасибо! p.s. Пример прилагаю! выложите пожалуйста также сам макрос! Спасибо!slavka_g_xl
А почему сразу не выложить, как Вам нужно? Кому интересно переделывать?
Code
Private Sub Worksheet_Change(ByVal Target As Range) If Target.Address(0, 0) <> "A3" Then Exit Sub Dim r As Range: Set r = Range("b:k,n:w,z:ai") Application.ScreenUpdating = False r.EntireColumn.Hidden = True r.Areas(Target.Value).EntireColumn.Hidden = False Application.ScreenUpdating = True End Sub
А почему сразу не выложить, как Вам нужно? Кому интересно переделывать?
Code
Private Sub Worksheet_Change(ByVal Target As Range) If Target.Address(0, 0) <> "A3" Then Exit Sub Dim r As Range: Set r = Range("b:k,n:w,z:ai") Application.ScreenUpdating = False r.EntireColumn.Hidden = True r.Areas(Target.Value).EntireColumn.Hidden = False Application.ScreenUpdating = True End Sub
Private Sub Worksheet_Change(ByVal Target As Range) 'If Target.Address(0, 0) <> "C2" Then Exit Sub Dim r As Range: Set r = Range("C3:H3") 'Application.ScreenUpdating = False r.EntireColumn.Hidden = True Range(r.Cells(1), r.Cells(Target)).EntireColumn.Hidden = False 'Application.ScreenUpdating = True End Sub
- Так тоже все работает..
Private Sub Worksheet_Change(ByVal Target As Range) 'If Target.Address(0, 0) <> "C2" Then Exit Sub Dim r As Range: Set r = Range("C3:H3") 'Application.ScreenUpdating = False r.EntireColumn.Hidden = True Range(r.Cells(1), r.Cells(Target)).EntireColumn.Hidden = False 'Application.ScreenUpdating = True End Sub
mattiasrem, если бы Вы почитали справку про Application.ScreenUpdating, то поняли бы, что перед началом операций с данными, выводимыми на экран, часто ставят Application.ScreenUpdating = False, а по окончании этих операций - Application.ScreenUpdating = True для того, чтобы ускорить исполнение кода и исключить мерцание экрана при их выполнении. Это просто полезная привычка программистов, которая никогда не вредит, но часто сильно ускоряет работу программ. В вашем конкретном случае, когда скрывается один столбец (одна группа столбцов) за одну операцию, применение метода Application.ScreenUpdating на работу макроса никак не влияет, но небольшое "вздрагивание" экрана устраняет.
mattiasrem, если бы Вы почитали справку про Application.ScreenUpdating, то поняли бы, что перед началом операций с данными, выводимыми на экран, часто ставят Application.ScreenUpdating = False, а по окончании этих операций - Application.ScreenUpdating = True для того, чтобы ускорить исполнение кода и исключить мерцание экрана при их выполнении. Это просто полезная привычка программистов, которая никогда не вредит, но часто сильно ускоряет работу программ. В вашем конкретном случае, когда скрывается один столбец (одна группа столбцов) за одну операцию, применение метода Application.ScreenUpdating на работу макроса никак не влияет, но небольшое "вздрагивание" экрана устраняет.Alex_ST