У меня возникла проблема с формой Excel, и я не понимаю. Форма имеет 2 поля даты Начало и конец даты и 1 CHeckbox, называемый Fixed Period.Excel - ошибка времени выполнения 13: несовпадение типа?
Цель состоит в том, чтобы установить флажок, чтобы период составлял 1 год, следовательно Дата окончания пересчитывается с помощью Начального значения в качестве базы. Код VBA ниже приводит к ошибке 13 Тип Несоответствие в инструкции If.
Я думал, что Даты должны быть преобразованы с помощью CDate или это проблема с nog? Любой указатель оценил
Private Sub BeginDatum_Change()
Static OldValue As String
With Me.BeginDatum
Debug.Print "Value: "; .Value; " Old Value: "; OldValue
If CDate(.Value) > CDate(EindDatum.Value) Or CDate(.Value) > Date Then
Debug.Print "EindDatum " & EindDatum.Value & " is NOT Good"
.Value = OldValue
Else
Sheets("Traject").Range("Begin") = .Value
OldValue = .Value
If (FixedPeriod) Then
EindDatum.Value = Format(DateAdd("yyyy", 1, Me.BeginDatum.Value), "dd/mm/yyyy")
End If
End If
End With
End Sub
что BeginDatum? так как ваш юзер «BeginDatum_Change», а позже вы пытаетесь получить «BeginDatum.Value». –
Вы пытались удалить «CDate». Думаю, тебе следовало хотя бы попробовать? Но я предполагаю, что вместо использования события * Change * попробуйте * AfterUpdate *? – L42
Извините ... BeginDatum и EindDatum являются полями формы ... и BeginDatum_Change - это процедура, которая срабатывает, когда происходит изменение. Уже пробовал без CDate. Я не вижу событие AfterUpdate ??? –