Ввод дат только текущего года через 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
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д