我希望根据Month将数据从一个文件保存到另一个文件,但是如果一周到达另一个月,我仍然希望保存当前周的数据。这是代码,它适用于按月保存:
'Copy Data to Workbook Weekly Monthly
Rows("2:2").Select
Range(Selection, Selection.End(xlDown)).Select
Selection.Copy
Application.DisplayAlerts = True
FileMonth = Month(Date)
StrFileMonth = Format(Date, "MMM")
Filepath = "F:\Customer Services\UK Order File\Monthly Figures\" & StrFileMonth & "\" & "UK_Orders_Monthly.xlsm"
Workbooks.Open (Filepath), _
UpdateLinks:=True
Worksheets("Data").Activate
Range("A1").End(xlDown).Offset(1, 0).Select
Selection.PasteSpecial Paste:=xlPasteValues
答案 0 :(得分:0)
在数学上使用时,VBA中的 True 被视为 -1 (与工作表的TRUE相反,即+1)。
如果工作日(日期)大于日期(日期),那么月份应该是上个月;例如dateadd(“m”, - 1,日期)。如果它等于或小于该月的那一天,则该月份是当月;例如dateadd(“m”,0,Date)。
StrFileMonth = Format(dateadd("m", weekday(date, vbmonday) > day(date), date), "mmm")
我使用了周一= 1的vbMonday; WeekDay VBA函数默认为Sunday = 1。