Userform根据用户输入的日期显示截止日期

时间:2018-04-06 05:10:43

标签: excel-vba datetime vba excel

我对VBA相对较新(基于很多谷歌和一些教程的自学)。

我正在创建用户表单,其中用户输入收到应用程序的日期(在当前日期设置的默认值), 我在下面有第二个文本框,我希望它显示响应的截止日期(添加30天)

我不确定如何添加30天以便在用户表单上显示截止日期,是否可能?

Userform picture of the two textboxes

我尝试使用

的内容

responseduetext.Value = Format(DateAdd("d", 30, datereceivedtext.Value), "dd/mm/yyyy")

这样可行,但如果我更改收到的日期,则值不会更新。

1 个答案:

答案 0 :(得分:0)

你还没有提到你想要触发计算的任何代码或逻辑,所以我需要在这里猜测,但背后的想法很简单。你需要触发这个:

TextBox2.Text = TextBox1.Text + DAY(30)

现在你可能想要检测它是否是第一个文本框中的有效日期,你可以这样做:

Private Sub TextBox1_Change()
   If IsDate(TextBox1.Text) Then
      TextBox2.Text = CDate(TextBox1.Text) + Day(30)
   Else
      TextBox2.Text = ""
   End If
End Sub

因此,每次TextBox1更改Excel都会评估输入,如果可能,则会增加30天。您可能会看到它也会评估,例如" 01/02",如果你想阻止它,你可以在上面的if子句中添加更多内容(例如If IsDate(TextBox1.Text) And Len(TextBox1.Text)>9 Then