Essas datas são produzidas pelo calendário de Trevor Eyre no formato dos EUA, então converti para o Reino Unido para meus usuários. No entanto, acho que é por isso que não consigo encontrar a diferença de data, já que não é mais um número. Existe uma maneira?
Private Sub TextBox6_Enter()
'CALENDAR arrival date
Dim dateVariable As Date
dateVariable = CalendarForm.GetDate
Dim sDate As String 'changes format from USA for UK users
sDate = Format(dateVariable, "dd-mmm-yy")
TextBox6.value = sDate
End Sub
Private Sub TextBox7_Enter()
'CALENDAR date leave
Dim dateVariable As Date
dateVariable = CalendarForm.GetDate
Dim sDate As String
'changes format from USA to UK
sDate = Format(dateVariable, "dd-mmm-yy")
TextBox7.value = sDate
End Sub
Private Sub TextBox20_change()
'Number of NIGHTS
TextBox20.value = DateDiff("d", DateValue(TextBox6.value), TextBox7.value)
End Sub
Depois de vários dias, percebi que sDate estava repetido nas caixas de texto 6 e 7. Com 77, meu cérebro está confuso. Agora funciona perfeitamente. Obrigado `Private Sub TextBox6_Enter() ' CALENDAR data de chegada
Dim dateVariable As Date
dateVariable = CalendarForm.GetDate
TextBox6.value = dateVariable
sDate = Format(dateVariable, "dd/mm/aaaa") 'muda o formato dos EUA para o Reino Unido TextBox6.value = sDate 'entrada na caixa de texto End Sub
Private Sub TextBox7_Enter() 'Data de saída do CALENDÁRIO
Dim dateVariable As Date
dateVariable = CalendarForm.GetDate
TextBox7.value = dateVariable
tDate = Format(dateVariable, "dd/mm/aaaa") 'altera o formato dos EUA para o Reino Unido TextBox7.value = tDate
TextBox20.Text = DateDiff("d", TextBox6.value, TextBox7.value) Fim do Sub```
Claro, mas certifique-se de que está comparando coisas semelhantes e que ambas as datas estejam no mesmo formato. Por exemplo:
Converter 'Datas de sequência de caracteres' específicas em datas
Usando algumas funções auxiliares, você pode fazer o seguinte:
Ajuda
Teste
Resultado
Use duas variáveis de nível de módulo e você poderá reduzir isso significativamente: