上个月在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)