Ввод дат только текущего года через userform - VBA
Формулировка задачи:
Здравствуйте, подскажите, как можно заблокировать или выводить сообщение, если на лист вводят дату не текущего года, то есть можно добавлять даты только с 01.01.2017 по 21.12.2017?
Решение задачи: «Ввод дат только текущего года через userform»
textual
Листинг программы
Private Sub cmbDay_Change() Dim i&, s$ With cmbDay s = .Text If s <> "" Then i = Asc(Right(s, 1)) If i > 47 And i < 58 Then i = Val(s) If i < 32 Then .Tag = s Else .Text = .Tag Else .Text = .Tag End If End If End With End Sub Private Sub cmdadd_Click() Dim i& i = Cells(Rows.Count, 1).End(xlUp).Row i = i 1 With DateInput Cells(i, 1).Value = CStr(DateSerial(.cmbYear, .cmbMonth.ListIndex 1, .cmbDay)) End With End Sub Private Sub cmdcancel_Click() Unload Me End Sub Private Sub UserForm_Initialize() Dim i& With cmbDay For i = 1 To 31 .AddItem i Next i .Text = .List(Day(Now) - 1) End With With cmbMonth For i = 1 To 12 .AddItem Format(DateSerial(0, i, 1), "mmmm") Next i .Text = .List(Month(Now) - 1) End With With cmbYear .AddItem 2017 .Text = .List(0) End With End Sub
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д