我需要解決只給出了日期的日部分當前周(例如2017年4月1日)內的日期,這可能與Excel VBA? 我已經看過像這樣的excel vba - How to get the Day Name of Date? 的問題,但他們回答不同的問題。我也研究過使用像vbTuesday這樣的常量,但他們沒有幫助,因爲我仍然需要弄清楚如何將當天的名字連接到當前的星期。Excel VBA - 有沒有一種方法可以在當前一週中獲得日期,只給定日期名稱?
0
A
回答
1
的主要問題是把你一天的名稱爲天數 - 因此週二或週二返回1日(星期一爲0天)。
在第一個想到我會使用一個Select Case
聲明VBA,但有可能是一個更好的辦法。
下面的代碼將計算星期一日期(dReturnDate
),然後添加一個數字取決於你問的天。無意義的日期名稱將返回#Num
錯誤。
Public Function DateFromDay(DayName As String) As Variant
Dim dReturnDate As Date
Dim lDayNumber As Long
dReturnDate = Date - Weekday(Date - 2)
Select Case DayName
Case "Mon", "Monday"
lDayNumber = 0
Case "Tue", "Tuesday"
lDayNumber = 1
Case "Wed", "Wednesday"
lDayNumber = 2
Case "Thu", "Thursday"
lDayNumber = 3
Case "Fri", "Friday"
lDayNumber = 4
Case "Sat", "Saturday"
lDayNumber = 5
Case "Sun", "Sunday"
lDayNumber = 6
Case Else
lDayNumber = -1
End Select
If lDayNumber >= 0 Then
DateFromDay = dReturnDate + lDayNumber
Else
DateFromDay = CVErr(xlErrNum)
End If
End Function
工作表:
=DateFromDay("Tuesday")
返回2017年4月18日
=DateFromDay("Any Day")
回報#Num!
1
在很大程度上取決於你是否要使用vbUseSystemDayOfWeek
或者如果單純治療星期一作爲第1天是可以接受的。您還會需要額外的代碼,如果你想接受,例如,「星期一」和「星期一」,如果你想保護的查找與UCase
。
原則,不過,該功能可能是簡單的:
Public Function DateFromDayName(dayName As String) As Date
Dim d As Long
d = WorksheetFunction.Match(dayName, _
Array("Monday", _
"Tuesday", _
"Wednesday", _
"Thursday", _
"Friday", _
"Saturday", _
"Sunday"), _
0)
DateFromDayName = Now - Weekday(Now, vbMonday) + d
End Function
相關問題
- 1. php當前週日名稱與日期
- 2. 有沒有一種方法可以獲得給定年份Java的給定weekNo的開始日期?
- 3. XCOPY:有沒有辦法只獲得一個特定的日期?
- 4. 有沒有辦法獲得本月的一週的日期?
- 5. 參考當前日期獲取一週中的日期數組
- 6. 獲取當前週日和週日以前的日期
- 7. 如何獲得特定一週中特定日期的日期
- 8. 將日期轉換爲日期名稱週一,週二,週三
- 9. 獲得一週的第一天的日期在給定日期PHP
- 10. Excel - 如何獲取日期是一週中的特定日期?
- 11. 在Excel中找到日期之前的週一或週日
- 12. Jodatime是否有一種方法可以獲得自某個較舊日期以來的月份和日期?
- 13. 如何獲得所有在c日期的2日期之間給出的「日期名稱」日期
- 14. 以給定開始日期和結束日期的一週爲間隔獲取所有日期
- 15. 獲取當前時間沒有日期
- 16. 有沒有一種更有效的方式來獲得在C#中的給定日期的前一個星期一
- 17. 如何在android中使用特定日期獲取當前日期名稱?
- 18. 如何獲得一週的當前日期和播放框架
- 19. JavaScript - 從當前日期開始獲得每週的第一天
- 20. 有沒有一種方法,我們可以設置日期選取器值系統日期
- 21. 獲得當前日期localtime_s
- 22. 在Excel中格式化日期以使用Access VBA顯示當前日期
- 23. 上週一不是當前日期
- 24. C#前一週日期
- 25. 有沒有一種方法可以獲得共享首選名稱?
- 26. 有沒有一種解決方法可以使DateAxis在範圍內的第一個日期前打勾
- 27. PHP如何獲得給定日期下週的星期一和星期日的日期?
- 28. 從Datetime.Now查找當前周,以及如何查找當前週日期之間的給定日期?
- 29. 回顯日期,距離當前日期一週
- 30. 選擇當前日期和一週之間的日期InnoDB
究竟是輸入?像這樣的工作:'?Clng(Format(now + 5,「ww」))''如果你把它寫在直接窗口中?它給出當天+5天的一週。 – Vityata
輸入是一個字符串的日期名稱(從下拉列表中選擇,例如「Monday」)。謝謝,我現在就試試。編輯:不知道這是我真正的後。 'd = CLng(格式(「星期一」+ 5,「ww」))'給出類型不匹配錯誤。 – warsong