[英]Entering date of the day of the week in excel vba
我創建了一個考勤卡工作表供我的員工提交。 A 列是日期名稱,我希望 B 列自動填充當天的日期。 這是我創建的模塊...
Sub AutoDate()
Dim NextSun As Date
Dim NextMon As Date
Dim NextTues As Date
Dim NextWed As Date
Dim NextThur As Date
Dim NextFri As Date
Dim NextSat As Date
'*****Autopopulate the dates of the day of the week*****
NextSun = ((Weekday(Date, vbSunday)))
Range("C26") = NextSun
NextSun = ((Weekday(Date, vbMonday)))
Range("C27") = NextMon
NextSun = ((Weekday(Date, vbTuesday)))
Range("C28") = NextTues
NextSun = ((Weekday(Date, vbWednesday)))
Range("C29") = NextWed
NextSun = ((Weekday(Date, vbThursday)))
Range("C30") = NextThur
NextSun = ((Weekday(Date, vbFriday)))
Range("C31") = NextFri
NextSat = ((Weekday(Date, vbSaturday)))
Range("C32") = NextSat
End Sub
在此先感謝您對此事的協助。
所以我假設你總是在B26
中從星期日開始,在B27
中從星期一開始,依此類推,並且只想在C
列中打印下一周的日期——因此是變量名稱?
Weekday() 只會返回一個數字,而不是日期,因此僅憑這一點不太可能做你想做的。 但是,您可以將其添加到現有日期。
Sub AutoDate()
Dim NextDay As Range
Dim i As Long
Set NextDay = Range("C26")
For i = 0 To 6
NextDay.Offset(i) = Date + (8 - Weekday(Date) + i)
Next i
End Sub
如果您想要當前一周,請將8更改為1 。
這將用本周的日期填充 B 列和 C 的七行:
Sub AutoDate()
Dim NameRange As Range
Dim DateRange As Range
Dim WeekdayDate As Date
Dim WeekdayName As String
Dim StartDate As Date
Dim Offset As Long
Set NameRange = Range("C26")
Set DateRange = Range("B26")
StartDate = DateAdd("d", 1 - Weekday(Date, vbSunday), Date)
For Offset = 0 To 6
WeekdayDate = DateAdd("d", Offset, StartDate)
WeekdayName = Format(WeekdayDate, "dddd")
DateRange.Offset(Offset) = WeekdayDate
NameRange.Offset(Offset) = WeekdayName
Next
End Sub
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.