我对VBA相对较新(基于很多谷歌和一些教程的自学)。
我正在创建用户表单,其中用户输入收到应用程序的日期(在当前日期设置的默认值), 我在下面有第二个文本框,我希望它显示响应的截止日期(添加30天)
我不确定如何添加30天以便在用户表单上显示截止日期,是否可能?
Userform picture of the two textboxes
我尝试使用
的内容 responseduetext.Value = Format(DateAdd("d", 30, datereceivedtext.Value), "dd/mm/yyyy")
这样可行,但如果我更改收到的日期,则值不会更新。
答案 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
)