You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用VBA提取筛选后最近6个对应工作日的日期与现金头寸数据

实现方案

你可以通过VBA识别筛选后的可见单元格,自动定位最后6条匹配的工作日数据,不需要手动定义行范围,参考代码如下:

Sub 提取指定周次最近6天现金流数据()
    Dim ws As Worksheet
    Dim visibleRange As Range
    Dim rowArr() As Long
    Dim i As Long, rowCount As Long, targetNum As Long
    
    ' 绑定当前操作工作表,可替换为你自己的表名,比如Set ws = Sheets("现金流表")
    Set ws = ThisWorkbook.ActiveSheet
    targetNum = 6 ' 要提取的最近数据条数,可按需调整
    
    ' 获取G列(星期几列)排除表头的所有可见单元格
    On Error Resume Next
    Set visibleRange = ws.Range("G2:G" & ws.Cells(Rows.Count, "G").End(xlUp).Row).SpecialCells(xlCellTypeVisible)
    On Error GoTo 0
    
    ' 无匹配数据直接退出
    If visibleRange Is Nothing Then
        MsgBox "当前筛选条件下没有符合要求的数据"
        Exit Sub
    End If
    
    rowCount = visibleRange.Cells.Count
    ' 兼容可见数据不足6条的场景
    If rowCount < targetNum Then targetNum = rowCount
    ReDim rowArr(1 To targetNum)
    
    i = 1
    ' 倒序遍历可见单元格,收集最后N条的行号
    For areaIdx = visibleRange.Areas.Count To 1 Step -1
        For cellIdx = visibleRange.Areas(areaIdx).Cells.Count To 1 Step -1
            rowArr(i) = visibleRange.Areas(areaIdx).Cells(cellIdx).Row
            i = i + 1
            If i > targetNum Then Exit For
        Next
        If i > targetNum Then Exit For
    Next
    
    ' ----------------------
    ' 下面是自定义操作部分,按需修改
    ' 示例1:选中A列和F列对应范围
    Union(ws.Range("A" & Join(rowArr, ",A")), ws.Range("F" & Join(rowArr, ",F"))).Select
    ' 示例2:复制到其他位置,比如从J1开始粘贴
    ' For k = 1 To targetNum
    '     ws.Cells(k, "J") = ws.Cells(rowArr(k), "A")
    '     ws.Cells(k, "K") = ws.Cells(rowArr(k), "F")
    ' Next
    ' 示例3:直接计算现金头寸平均值
    ' Dim avg As Double
    ' For k = 1 To targetNum
    '     avg = avg + ws.Cells(rowArr(k), "F")
    ' Next
    ' avg = avg / targetNum
    ' MsgBox "最近" & targetNum & "个工作日的平均现金头寸为:" & avg
End Sub
关键说明
  • 代码用SpecialCells(xlCellTypeVisible)专门读取筛选后的可见内容,自动跳过隐藏行,不需要手动数行号
  • 适配筛选后可见行分段的场景(筛选后隐藏行把可见行拆成多个不连续区域),不会漏读数据
  • 已经做了数据量不足6条的兼容,不会出现索引越界报错
  • 代码里注释了三种常用操作,你可以根据自己的需求注释/打开对应代码段即可

内容的提问来源于stack exchange,提问作者DallasJ

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.24 02:06:02