Добрый день уважаемые форумучаны прошу помочь с кодом При вставки даты через текст бокс значение вставляется как текст, как мне исправить это, чтоб дата вставлялась как дата ?
Код
Private Sub txt1_Birthday_Change() ' записывем значение даты в БД при изменении даты в текстовом поле
' только если в txt1_Birthday содержится дата
If IsDate(txt1_Birthday) Then SaveInfo ДатаРождения, CDate(txt1_Birthday)
End Sub
Sub Заполнение_Вкладки_1()
Me.txt1_Birthday = GetInfo(ДатаРождения)
End Sub
Private Sub B_Birthday_Change_Click()
Me.txt1_Birthday = Get_Date(Me.txt1_Birthday, "01-01-1992") ' выбор даты из календаря
End Sub
Модул
Код
Sub ПечатьКарточки()
' заполняет карточку данными из текущей строки базы данных,
' и выводит этот лист на экран в режиме предварительного просмотра
Application.Visible = True
Dim sh As Worksheet: Set sh = ThisWorkbook.Worksheets("Личное_дело_абитуриента")
With sh
.Cells(9, 3) = GetInfo(ДатаРождения)
End With
Ваша проблема в этой части кода. Функция IsDate проверяет тип переменной. То есть это должна быть переменная типа Date либо Variant, содержащий значение типа Date. У вас в TextBox строка, следовательно IsDate всегда возвращает False. Попробуйте такую функцию для проверки - может ли строка быть преобразована в Date
Код
Public Function checkOnDate(ByVal thisText As String) As Boolean
On Error GoTo errHandle
Dim testDate As Date
testDate = CDate(thisText)
checkOnDate = True
Exit Function
errHandle:
checkOnDate = False
End Function
neon130, код следует оформлять соответствующим тегом - посмотрите, как это сделал Андрей. Вот и Вы поступайте так же: ищите такую кнопку (см. скрин) и исправьте своё сообщение.