所以我知道這個問題已經被問了幾次,但我相信我的情況有點不同(當然很高興被證明是錯誤的!)更改日期fromat從mm/dd/yyyy到dd/mm/yyyy VBA
以下是數據流:用戶在表單中輸入日期中的日期。然後他們點擊一個按鈕。我的宏然後採取該日期,運行它通過以下功能:
Function AddWeekDays(StartDate As Long, Days As Long) As Date
Dim i As Long
Dim d As Date
d = StartDate
i = 0
While i < Days
d = DateSerial(Year(d), Month(d), Day(d) + 1)
If Weekday(d, vbMonday) < 6 Then
i = i + 1
End If
Wend
AddWeekDays = d
End Function
然後格式化日期從毫米更改/ DD/YYYY至DD以下列方式/ MM/YYYY:
Dim deadline As Date
Dim deadline_formatted As Date
Dim DateReceived As String
Dim DateConverted As Date
DateReceived = txt_DateReceived.Text
DateConverted = Format(DateReceived, "dd/mm/yyyy")
deadline = AddWeekDays(DateValue((CStr(DateConverted))), 9)
deadline_formatted = Format(deadline, "dd/mm/yyyy")
但是,deadline_formatted
值仍以mm/dd/yyyy格式顯示。
作爲一個例子,當用戶進入2017年1月5日的程序應返回deadline_formatted = 12/05/2017
,但它返回deadline_formatted = 05/12/2017
我試圖改變變量類型爲字符串,看看是否能取得的差(它沒「T),並試圖通過使用下面的代碼直接的截止日期變量轉換爲所需的格式:
deadline = Format(AddWeekDays(DateValue((CStr(DateConverted))), 9),"dd/mm/yyyy")
其仍返回不正確的格式。
任何人可以在那裏提出的或者是:
- 如何修正格式問題以獲得deadline_formatted到格式DD/MM/YYYY 或
- 提出了「變通方法」翻轉「DD 「與」毫米「(不理想顯然,但如果它的工作,它的工作!)
感謝您的任何意見!
https://www.ablebits.com/office-addins-blog/2015/03/11/change-date-format-excel/ –
'deadline_formatted'是'Date',而不是'String',所以它沒有以任何特定的方式「格式化」(它僅僅是數字42867)。 – YowE3K
用戶通常在計算機上使用什麼日期格式?說實話,我不知道你爲什麼要改變這種格式 - 你應該讓他們以他們習慣的任何格式輸入日期,然後將日期存儲在Excel單元格中(如果這是它的位置去)作爲日期。這樣,無論用戶在工作簿中看到日期,都能以任何格式查看日期,並且基於日期的任何計算都能正常工作,而無需進行各種奇怪的調整,以便從一種語言環境轉換爲另一種語言環境。 – YowE3K