Прежде всего, я n00b и здесь, и с VBA.
Я также потратил несколько часов на чтение похожих проблем, которые я пытался решить с небольшим успехом. Я пытаюсь придумать способ скрыть / показать указанные c столбцы, основанные на значении ячейки "A1". Проблема в том, что у меня есть около 200 столбцов, и единственный способ, которым я смог управлять, - это многострочный код со всеми диапазонами (см. Ниже).
Мне было интересно две вещи:
1) Есть ли более эффективный способ кодирования, чтобы мне не понадобилось так много строк? и 2) в идеале: есть ли способ кодирования этого, чтобы он действительно смотрел на значение в строке Excel и скрывал те столбцы, для которых ячейки не содержат «Q1»?
Спасибо, ребята: )
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address(0, 0) = "A1" Then
Columns("G:I").Hidden = Target.Value = "Q1"
Columns("K:Z").Hidden = Target.Value = "Q1"
Columns("AB:AQ").Hidden = Target.Value = "Q1"
Columns("AS:BH").Hidden = Target.Value = "Q1"
Columns("BJ:BY").Hidden = Target.Value = "Q1"
Columns("CA:CP").Hidden = Target.Value = "Q1"
Columns("CR:DG").Hidden = Target.Value = "Q1"
Columns("CR:DG").Hidden = Target.Value = "Q1"
Columns("DI:DX").Hidden = Target.Value = "Q1"
Columns("DZ:EO").Hidden = Target.Value = "Q1"
... et c.