Это должно быть сделано без VBA.Динамическое изменение количества дней в месяц для выпадающего списка
У меня есть список месяцев, которые нужно заполнить в одной ячейке, скажем, A1. Параметры могут быть заполнены с помощью Data Validation-List (= Months), что приводит к появлению выпадающего списка в A1. В ячейке B1 введите номер года (например, 2000). Теперь я хочу, чтобы C1 содержал выпадающий список, записи, в которых изменения основаны на данных в A1 и B1. В моем примере А1 предлагает выборы январь, февраль, марш, апрель, май, июнь, июль, август, сентябрь, октябрь, ноябрь и декабрь.
Если я выбираю январь или марш или май или август или октябрь или декабрь (месяцы с 31 днем), я должен получить номера от 1 до 31 в качестве опции в C1.
Если я выбираю апрель или июнь или сентябрь или ноябрь (месяцы с 30 днями), я должен получить номера от 1 до 30 в качестве опции в C1.
Если я выбираю февраль, я должен сначала проверить, если год високосный год с этой формулой:
=((MOD(B1;4)=0)*((MOD(B1;100)<>0)+(MOD(B1;400)=0))=1)
и на основе результата этой формулы (TRUE или FALSE), я должен получить число от 1 до 28 (или 29, если это високосный год) в качестве опции в C1.
Я создал списки под названием Days30, Days31, Days28 и Days29. Как я могу использовать Data Validation для переключения между этими списками для моего выпадающего списка в C1 ?? Я пытаюсь перевести эту логику в формулу валидации данных, но не повезло:
If (A1 = "april" OR A1 = "june" OR A1 = "september" OR A1 = "november") Then
Days30
ElseIf (A1 = "february" AND leapyear = 1) Then
Days29
ElseIf (A1 = "february" AND leapyear = 0) Then
Days28
Else
Days31
End if
Jeeped, большое вам спасибо! Я так и не думал. Это самый крутой подход когда-либо :) – Vladimir