【发布时间】:2021-01-06 09:36:14
【问题描述】:
我有一个日期范围。我想将这些日期的年、月和周数分隔到不同的列中。
我有以下代码,逐个单元格地计算它们:
Sub Sortdata()
Dim WBData As Workbook
Dim Lastrow As Long
Dim j as long
Dim D as Date
Set WBData = ThisWorkbook
Lastrow = WBData.Sheets("CDR").Cells(Rows.Count, "A").End(xlUp).row
For j = 2 To Lastrow
D = WBData.Sheets("CDR").Cells(j, 5) 'date
WBData.Sheets("CDR").Cells(j, 19) = Year(D)
WBData.Sheets("CDR").Cells(j, 20) = Month(D)
WBData.Sheets("CDR").Cells(j, 21) = Application.WorksheetFunction.WeekNum(D)
Next j
End Sub
有时最后一行超过 1000 行,需要太多时间。
我怎样才能改进这段代码,让它在更短的时间内运行?
【问题讨论】:
-
你真的需要使用 VBA 代码吗? support.microsoft.com/en-us/office/…
-
是的,因为数据非常大,当我使用公式时,文件的大小越来越大,我需要创建很多数据透视表(我已经用 VBA 完成了所有操作)。我需要每天更新文件以获取年度数据。