这些日期是根据 Trevor Eyre 的美国格式日历生成的,所以我已将其转换为英国格式供用户使用。不过,我猜这就是为什么我找不到日期差值的原因,因为它不再是数字。有什么办法吗?
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
几天后,我意识到 sDate 在 TextBox 6 和 TextBox 7 中重复了。77 的时候我的脑子都糊涂了。现在一切正常了。谢谢 `Private Sub TextBox6_Enter()' CALENDAR 到达日期
Dim dateVariable As Date
dateVariable = CalendarForm.GetDate
TextBox6.value = dateVariable
sDate = Format(dateVariable, "dd/mm/yyyy") '将格式从美国更改为英国 TextBox6.value = sDate '输入文本框 End Sub
Private Sub TextBox7_Enter() '日历日期休假
Dim dateVariable As Date
dateVariable = CalendarForm.GetDate
TextBox7.value = dateVariable
tDate = Format(dateVariable, "dd/mm/yyyy") '将格式从美国更改为英国 TextBox7.value = tDate
TextBox20.Text = DateDiff("d", TextBox6.value, TextBox7.value) End Sub```
当然,只要确保你比较的是同类数据,并且两个日期的格式相同即可。例如:
将特定的“字符串日期”转换为日期
通过使用一些辅助函数,您可以执行以下操作:
帮助
测试
结果
使用两个模块级变量,可以显著减少这种情况: