在VBA中,可以使用自动筛选功能来按照月份或年份筛选数据,并将符合条件的数据添加到另一个范围中。
以下是一种实现方法:
Sub ApplyAutoFilter()
Dim ws As Worksheet
Dim lastRow As Long
Dim filterRange As Range
Dim criteriaRange As Range
' 设置筛选范围和条件范围
Set ws = ActiveSheet
lastRow = ws.Cells(ws.Rows.Count, "A").End(xlUp).Row
Set filterRange = ws.Range("A1:A" & lastRow)
Set criteriaRange = ws.Range("B1")
' 应用筛选
filterRange.AutoFilter Field:=1, Criteria1:=criteriaRange.Value
' 将筛选结果复制到另一个范围
filterRange.SpecialCells(xlCellTypeVisible).Copy Destination:=ws.Range("C1")
' 关闭筛选
ws.AutoFilterMode = False
End Sub
在上述代码中,我们假设要筛选的数据范围为A列,筛选条件为B1单元格的值。筛选结果将复制到C列。
Private Sub CommandButton1_Click()
ApplyAutoFilter
End Sub
这样,你就可以使用VBA按月/年应用自动筛选,并根据月/年筛选在另一个范围内添加值了。
补充说明:
AutoFilter
方法用于应用筛选,其中Field
参数指定要筛选的列,Criteria1
参数指定筛选条件。SpecialCells
方法用于获取可见单元格的范围,即符合筛选条件的数据。Copy
方法用于将筛选结果复制到指定的目标范围。AutoFilterMode
属性用于关闭筛选。领取专属 10元无门槛券
手把手带您无忧上云