小编Mak*_* PC的帖子

如何将过滤后的范围存储到数组中?

我挠头完成我的这个 vba 脚本并陷入困境:

在sheet1中,我有一个大表(非结构化),范围为A1:BY1200,第1行包含已过滤的标题。现在我只需要将过滤后的范围存储到数组中并将数组数据写回不同的工作簿。以下是我实现上述目标的半完整代码:

我的谜题:

  1. 我不熟悉循环过滤范围并将它们存储到数组中。
  2. 我还需要完成最后一部分,以便将数组数据(过滤后的范围)写回,例如,sheet2 起始单元格 A1。

我已经阅读了一些类似场景的帖子,但没有一个完全满足我的情况的所有要求。有人在其他帖子中建议在循环过滤范围以记录到数组中时使用 Areas 方法。

提前谢谢了。

注意:过滤后,过滤范围内有不相邻的行

    Sub StoreFilteredRangeInArray()
    Dim rCell as Range, rData as Range, rArea as Range
    Dim i as Long
    
    with Activesheetset 
    set rData = .range("A1").CurrentRegion
    
    Dim rFiltered as Range
    rData.autofilter Field:=1, Criteria1:="<>"
    
    with rData
    set rFiltered = .offset(1,0).Resize(.Rows.count -1, .Column.count).SpecialCells(xlCellTypeVisible)
    end with

    Dim myArray() as variant
    ...(get stuck here)
    
    end with
    End Sub
Run Code Online (Sandbox Code Playgroud)

arrays excel vba range autofilter

1
推荐指数
1
解决办法
149
查看次数

标签 统计

arrays ×1

autofilter ×1

excel ×1

range ×1

vba ×1