VBA复制可见单元并粘贴为值-最有效的方法

问题描述 投票:0回答:1

我有一个excel工具,可以使用从报表系统生成的11个不同原始数据文件中的提要来对该数据进行一些计算。

过程非常简单:- 打开文件-过滤内容-复制过滤的内容-粘贴到另一个文件中(摘要工具的标签)

随着数据和单个文件数量的增加,我开始遇到更多有关内存的问题。因此,我的问题-复制/粘贴这些表的最内存和最快速度的方法是什么?

  • (...)。SpecialCells(xlCellTypeVisible).Copy Destination:=(...)-我还没有找到为此添加XLValues参数的方法(我想通过复制格式来减少占用的资源,没有公式)

  • 为复制/粘贴目的使用定义的范围(使用xlCellTypeVisible参数命名范围,转换为另一个范围以仅获取值并将该范围发送到目标)-这将需要该范围的其他变量

  • 普通旧列(...)。SpecialCells(xlCellTypeVisible).Copy和Range。(“ A1”)。PasteSpecial粘贴:= xlValues-此方法同时具有“仅可见单元格”和“仅粘贴值”位我在寻找,但是它使用剪贴板作为中间人,我想这会耗尽我的记忆力

也许还有另一种我不知道的方法?

感谢任何见解!

excel vba copy-paste
1个回答
0
投票

幸运的是,自动筛选器具有内置功能来简化此操作。说我们开始于:

enter image description here

并使用过滤器:

Sub Macro1()
    Columns("A:B").AutoFilter
    ActiveSheet.Range("$A$1:$B$8").AutoFilter Field:=2, Criteria1:=">50", Operator:=xlAnd
End Sub

enter image description here

自动筛选器具有Range属性,该属性允许:

Sub Kopy()
    Dim rng As Range
    Set rng = ActiveSheet.AutoFilter.Range
    rng.Copy Sheets("Sheet2").Range("A1")
End Sub

Sheet2上的结果具有

  1. Sheet1中的可见数据
  2. 标题行
  3. 未过滤

enter image description here

© www.soinside.com 2019 - 2024. All rights reserved.