上个月在VBA Excel中
我有一个有大量信息的表格,我如何select最后几个月的价值? (即列中最后31个单元格?)
数据是在表格中
date1 numbers date2 numbers . . . . . . daten numbers
where date1是dd / mm / ccyy
干杯
理想情况下,会有一个列有date的列。 然后你可以做一个高级filter来过滤你需要的date范围。 select过去的31天不会只select一个月。 也可以select上个月前3天。
Public Sub selectLastMonth() Dim ws As Worksheet Dim dStart As Date, dEnd As Date Set ws = ActiveSheet ws.Range("A:B").Sort key1:=ws.Range("A2"), header:=xlYes dEnd = ws.Range("A1").End(xlDown).Value dStart = DateSerial(DatePart("yyyy", dEnd), DatePart("m", dEnd), 1) ws.Range("A:B").AutoFilter field:=1, Criteria1:=">=" & dStart, Operator:=xlAnd, Criteria2:="<=" & dEnd Set ws = Nothing End Sub
使用
LastRow = Sheet.Cells.SpecialCells(Excel.XlCellType.xlCellTypeLastCell).Row
那么你可以得到从LastRow-31到LastRow的范围,如果你有指定的date,则向前移动开始点直到date值=date(如果(now.month = 1,now.year-1,now.year) ,如果(now.month = 1,12,now.month-1),now.day)