Пожалуйста помогите написать макрос. Задача макроса скрывать столбцы лист1, в зависимости от содержимого в лист2 ячейка A2. Если Лист2. A2 = скорость, то скрыть Лист1.C:F Если Лист2. A2 = сила, то скрыть Лист1.A:B и E:F Если Лист2. A2 = выносливость, то скрыть Лист1.A:D
Пожалуйста помогите написать макрос. Задача макроса скрывать столбцы лист1, в зависимости от содержимого в лист2 ячейка A2. Если Лист2. A2 = скорость, то скрыть Лист1.C:F Если Лист2. A2 = сила, то скрыть Лист1.A:B и E:F Если Лист2. A2 = выносливость, то скрыть Лист1.A:DAnton85
Private Sub Worksheet_Change(ByVal Target As Range) If Target.Address(0, 0) = "A2" Then With Sheets("Лист1") .Columns("A:F").EntireColumn.Hidden = True On Error Resume Next c_ = WorksheetFunction.Match(Target, .Rows(1), 0) .Columns(c_).Resize(, 2).EntireColumn.Hidden = False End With End If End Sub
[/vba]
Так нужно? [vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range) If Target.Address(0, 0) = "A2" Then With Sheets("Лист1") .Columns("A:F").EntireColumn.Hidden = True On Error Resume Next c_ = WorksheetFunction.Match(Target, .Rows(1), 0) .Columns(c_).Resize(, 2).EntireColumn.Hidden = False End With End If End Sub
Думал что смогу подогнать макрос под свои задачи, но оказалась что я себя переоценил.... за что и поплатился. Не могли бы вы еще помочь. Скрывать столбцы надо по тому же принципу. Но
Задача макроса скрывать столбцы лист1, в зависимости от содержимого в лист2 ячейка A2. Если Лист2. A2 = скорость, то скрыть Лист1.K:BA Если Лист2. A2 = сила, то скрыть Лист1.G:J и M:BA Если Лист2. A2 = выносливость, то скрыть Лист1.G:L
Думал что смогу подогнать макрос под свои задачи, но оказалась что я себя переоценил.... за что и поплатился. Не могли бы вы еще помочь. Скрывать столбцы надо по тому же принципу. Но
Задача макроса скрывать столбцы лист1, в зависимости от содержимого в лист2 ячейка A2. Если Лист2. A2 = скорость, то скрыть Лист1.K:BA Если Лист2. A2 = сила, то скрыть Лист1.G:J и M:BA Если Лист2. A2 = выносливость, то скрыть Лист1.G:LAnton85
Сообщение отредактировал Anton85 - Пятница, 17.06.2016, 12:52
Sub SkrSt() With Sheets("Лист1") .Columns("A:BA").EntireColumn.Hidden = False If Range("A2").Value = "скорость" Then .Range("K:BA").EntireColumn.Hidden = True If Range("A2").Value = "сила" Then .Range("G:J, M:BA").EntireColumn.Hidden = True If Range("A2").Value = "выносливость" Then .Range("G:L").EntireColumn.Hidden = True End With End Sub
[/vba]
Добрый день. Без файлика как-то так [vba]
Код
Sub SkrSt() With Sheets("Лист1") .Columns("A:BA").EntireColumn.Hidden = False If Range("A2").Value = "скорость" Then .Range("K:BA").EntireColumn.Hidden = True If Range("A2").Value = "сила" Then .Range("G:J, M:BA").EntireColumn.Hidden = True If Range("A2").Value = "выносливость" Then .Range("G:L").EntireColumn.Hidden = True End With End Sub
А зачем всегда 3 раза проверку делать? После первого True дальше не нужно [vba]
Код
Sub SkrSt1() With Sheets("Лист1") .Columns("A:BA").EntireColumn.Hidden = False If Range("A2").Value = "скорость" Then .Range("K:BA").EntireColumn.Hidden = True: Exit Sub If Range("A2").Value = "сила" Then .Range("G:J, M:BA").EntireColumn.Hidden = True: Exit Sub If Range("A2").Value = "выносливость" Then .Range("G:L").EntireColumn.Hidden = True End With End Sub
[/vba] А вообще-то лучше наверное через Case [vba]
Код
Sub SkrSt() With Sheets("Лист1") .Columns("A:BA").EntireColumn.Hidden = False Select Case Range("A2") Case "скорость" .Range("K:BA").EntireColumn.Hidden = True Case "сила" .Range("G:J, M:BA").EntireColumn.Hidden = True Case "выносливость" .Range("G:L").EntireColumn.Hidden = True End Select End With End Sub
[/vba]
А зачем всегда 3 раза проверку делать? После первого True дальше не нужно [vba]
Код
Sub SkrSt1() With Sheets("Лист1") .Columns("A:BA").EntireColumn.Hidden = False If Range("A2").Value = "скорость" Then .Range("K:BA").EntireColumn.Hidden = True: Exit Sub If Range("A2").Value = "сила" Then .Range("G:J, M:BA").EntireColumn.Hidden = True: Exit Sub If Range("A2").Value = "выносливость" Then .Range("G:L").EntireColumn.Hidden = True End With End Sub
[/vba] А вообще-то лучше наверное через Case [vba]
Код
Sub SkrSt() With Sheets("Лист1") .Columns("A:BA").EntireColumn.Hidden = False Select Case Range("A2") Case "скорость" .Range("K:BA").EntireColumn.Hidden = True Case "сила" .Range("G:J, M:BA").EntireColumn.Hidden = True Case "выносливость" .Range("G:L").EntireColumn.Hidden = True End Select End With End Sub