我有一个excel工具,可以使用从报表系统生成的11个不同原始数据文件中的提要来对该数据进行一些计算。
过程非常简单:- 打开文件-过滤内容-复制过滤的内容-粘贴到另一个文件中(摘要工具的标签)
随着数据和单个文件数量的增加,我开始遇到更多有关内存的问题。因此,我的问题-复制/粘贴这些表的最内存和最快速度的方法是什么?
(...)。SpecialCells(xlCellTypeVisible).Copy Destination:=(...)-我还没有找到为此添加XLValues参数的方法(我想通过复制格式来减少占用的资源,没有公式)
为复制/粘贴目的使用定义的范围(使用xlCellTypeVisible参数命名范围,转换为另一个范围以仅获取值并将该范围发送到目标)-这将需要该范围的其他变量
普通旧列(...)。SpecialCells(xlCellTypeVisible).Copy和Range。(“ A1”)。PasteSpecial粘贴:= xlValues-此方法同时具有“仅可见单元格”和“仅粘贴值”位我在寻找,但是它使用剪贴板作为中间人,我想这会耗尽我的记忆力
也许还有另一种我不知道的方法?
感谢任何见解!
幸运的是,自动筛选器具有内置功能来简化此操作。说我们开始于:
并使用过滤器:
Sub Macro1()
Columns("A:B").AutoFilter
ActiveSheet.Range("$A$1:$B$8").AutoFilter Field:=2, Criteria1:=">50", Operator:=xlAnd
End Sub
自动筛选器具有Range
属性,该属性允许:
Sub Kopy()
Dim rng As Range
Set rng = ActiveSheet.AutoFilter.Range
rng.Copy Sheets("Sheet2").Range("A1")
End Sub
Sheet2
上的结果具有
Sheet1
中的可见数据