【发布时间】:2020-05-23 23:32:19
【问题描述】:
我有两个包含开始日期和结束日期的文本框。
我想得到一个数字,代表这两者之间的天数。
Private Sub TextBox20_Exit(ByVal Cancel As MSForms.ReturnBoolean)
'check date format
With TextBox20
If IsDate(TextBox20.Text) Then 'Format as desired.
TextBox20.Text = Format(CDate(TextBox20.Text), "Dddd, d Mmm yyyy", vbMonday)
Else
TextBox20.Text = "" 'Clear the TextBox
MsgBox "Por favor, ingresar una fecha valida."
Cancel = True
Exit Sub
End If
End With
End Sub
Private Sub TextBox21_Exit(ByVal Cancel As MSForms.ReturnBoolean)
'check date format
With TextBox21
If IsDate(TextBox21.Text) Then 'Format as desired.
TextBox21.Text = Format(CDate(TextBox21.Text), "Dddd, d Mmm yyyy", vbMonday)
Else
TextBox21.Text = "" 'Clear the TextBox
MsgBox "Por favor, ingresar una fecha valida."
Cancel = True
Exit Sub
End If
End With
End Sub
Private Sub TextBox22_AfterUpdate()
TextBox22.Value = DateDiff("d", CDate(TextBox20.Value), CDate(TextBox21.Value), vbMonday)
End Sub
我认为这是因为我将 TextBoxes 设置为 .Text 而不是 .Value,但没有任何变化。
【问题讨论】:
-
发布了一个接近你的代码的方法,它应该给你一些研究用户窗体行为的想法。如果有帮助,请随时接受。 - 仅供参考,您可能会从阅读 UserForm1.Show? 作为结构化和可维护 MVP 编码的高级介绍中受益:-)
标签: vba date userform datediff