[英]Excel 2013 64 bit - VBA Userform - Add 28 days to date of textbox and display in another textbox
在我的用戶表單中,我有一個文本框“ADD_Inc_DATE_TXT”,用戶可以手動輸入事件的日期。
我有另一個文本框“TxT_SWIRL_DueDate”,它應該顯示將 28 天添加到“ADD_Inc_DATE_TXT”文本框中輸入的日期的結果,或者甚至只是將 1 個月添加到事件日期。
我在名為“Mod_SWIRL_Due_Date”的模塊中嘗試過這個:
Sub SWIRL_ExpiryDate()
TxT_SWIRL_DueDate = CDate(ADD_Inc_DATE_TXT)
ADD_Inc_DATE_TXT = DateAdd("m", 1, ADD_Inc_DATE_TXT)
End Sub
但這似乎根本沒有任何作用。
我想要“txt_swirl_duedate”在選擇“add_inc_time_txt”文本框時顯示到期日期。
並且預計用戶會修改事件日期,我希望它使用修改后的日期更新 TxT_SWIRL_DueDate。
更多信息:我在下面包含了所有與日期相關的代碼。 我有 4 個日期選擇器/彈出式日歷......並且沒有一個日期以 dd/mm/yyyy 格式出現。 (將代碼放入“代碼示例”時遇到一些問題)
Private Sub Calendar1_Click()
ADD_Inc_DATE_TXT.value = CalendarForm.GetDate
If IsDate(ADD_Inc_DATE_TXT.Text) Then
Me.LBL_Inc_Day_Type.Caption = Format(ADD_Inc_DATE_TXT.Text, "ddd")
End If
If IsDate(ADD_Inc_DATE_TXT.Text) Then
Me.ADD_Inc_DATE_TXT.Text = Format(ADD_Inc_DATE_TXT.Text, "dd/mm/yyyy")
End If
End Sub
Private Sub Calendar2_Click()
TXT_AssetMgr_DATE = CalendarForm.GetDate
If IsDate(ADD_Inc_DATE_TXT.Text) Then
Me.TXT_AssetMgr_DATE.Text = Format(TXT_AssetMgr_DATE.Text, "dd/mm/yyyy")
End If
End Sub
Private Sub Calendar3_Click()
TXT_LastUserDATE = CalendarForm.GetDate
If IsDate(ADD_Inc_DATE_TXT.Text) Then
Me.TXT_LastUserDATE.Text = Format(TXT_LastUserDATE.Text, "dd/mm/yyyy")
End If
End Sub
Private Sub Calendar4_Click()
ADD_Date_ServiceJobLogged_TXT = CalendarForm.GetDate
If IsDate(ADD_Inc_DATE_TXT.Text) Then
Me.ADD_Date_ServiceJobLogged_TXT.Text = Format(ADD_Date_ServiceJobLogged_TXT.Text, "dd/mm/yyyy")
End If
End Sub
'在 Private Sub UserForm_Initialize() 下,我有以下與日期相關的代碼:Private Sub UserForm_Initialize()
Me.ADD_Date_Recorded_TXT.value = Format(Now, "dd/mm/yyyy") ‘ this works perfectly (correct format is returned)
Me.ADD_Time_Recorded_TXT.Text = Format(Now(), "HH:mm")
'***注意:我的系統日期是 dd/mm/yyyy 並且在電子表格單元格中,格式設置為 dd/mm/yyyy
在表單的代碼模塊中使用此代碼(右鍵單擊文本框,“查看代碼”):
Private Sub ADD_Inc_DATE_TXT_AfterUpdate()
TxT_SWIRL_DueDate.Value = Format(DateAdd("m", 1, CDate(ADD_Inc_DATE_TXT.Value)),"dd/mm/yyyy")
End Sub
我建議使用 AfterUpdate 事件,因為每次更改文本框中的值時都會觸發 Change 事件 - 例如,也在鍵入時。 這僅在用戶完成輸入並移動到表單上的下一個條目時觸發(點擊其他地方)。
還可以考慮使用某種形式的日期控件而不是文本框控件。 那里有很多,根據您使用的 Excel 版本,您可能只能使用其中的少數幾個。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.