У меня проблема с правильно работающим макросом. Я написал короткий и простой код для скрытия или отображения двух последних столбцов в зависимости от выбранного месяца.
Выбор месяца возможен с помощью поля со списком. Каждому месяцу присваивается номер (1 - январь, 2 - февраль, ... и т. Д. c.). Число отображается в ячейке A1 и изменяется при выборе месяца.
Я хочу, чтобы мой макрос работал правильно в зависимости от выбранного месяца.
Private Sub Worksheet_Change(ByVal Target As Range)
Dim nr_kol As Long
If Target.Address = "$A$1" Then
For nr_kol = 32 To 34
If Month(Cells(6, nr_kol)) = Cells(1, 1) Then
Columns(nr_kol).Hidden = False
Else
Columns(nr_kol).Hidden = True
End If
Next
End If
End Sub
РЕДАКТИРОВАТЬ (извините, нажали кнопку отправки слишком быстро)
Ячейка A1 изменяется в зависимости от выбора в выпадающем списке (поле расположено в другой строке). Я заметил, что столбцы будут скрыты, но только если ячейка A1 будет изменена вручную. Но когда я изменяю ячейку на индекс месяца, содержащий 30 или 31 день, столбцы остаются скрытыми, поэтому у меня возникают две проблемы.
Ячейку A1 необходимо изменить вручную (макрос не работает что бы ни происходило, когда изменения производятся с помощью выбора в выпадающем списке)
Когда я вручную изменяю на февраль - два или три последних столбца будут скрыты (как это происходит в течение первых двух / трех дней Марш). Однако, когда я изменяю число на что-либо, кроме февраля (2), столбцы по-прежнему скрыты, даже если хотя бы один из них должен появиться снова (если месяц содержит 30 дней).