文档详情

VBA技巧36复制自动筛选后的数据区域.doc

发布:2017-04-16约1.04千字共2页下载文档
文本预览下载声明
复制自动筛选后的数据区域 用户在对如 REF _Ref203402792 \h 图 361所示的数据列表进行自动筛选后,往往希望将自动筛选的结果复制到其它地方。 图  STYLEREF 3 \s 36 SEQ 图 \* ARABIC \s 3 1 筛选结果 这时可以通过获取该列表区域中可见单元格的方法得到筛选结果的单元格区域,并复制到工作表Sheet2中,如下面的代码所示。 #001 Sub CopyFilter() #002 Sheet2.Cells.Clear #003 With Sheet1 #004 If .FilterMode Then #005 .AutoFilter.Range.SpecialCells(12).Copy Sheet2.Cells(1, 1) #006 End If #007 End With #008 End Sub 代码解析: CopyFilter过程将Sheet1表中的筛选结果复制到工作表Sheet2中。 第2行代码清除Sheet2表中数据。 第4行代码判断Sheet1表是否处于自动筛选状态。FilterMode属性返回工作表是否处于筛选模式,如果指定工作表中包含已筛选序列且该序列中含有隐藏行,则该??为True。 第5行代码通过AutoFilter对象的Range属性返回工作表的自动筛选列表区域,再使用SpecialCells方法获取该列表区域中可见单元格(SpecialCells方法请参阅 REF _Ref215396459 \r \h 技巧4 ),得到筛选结果的单元格区域,然后使用Copy方法将结果区域复制到工作表Sheet2中,应用于Range对象的Copy方法将单元格区域复制到指定的区域或剪贴板中,语法如下: expression.Copy(Destination) 参数expression是必需的,该表达式返回一个Range对象。 参数Destination是可选的,指定区域要复制到的目标区域。如果省略该参数,则将该区域复制到剪贴板中。 运行CopyFilter过程工作表Sheet2如 REF _Ref203403543 \h 图 362所示。 图  STYLEREF 3 \s 36 SEQ 图 \* ARABIC \s 3 2 复制筛选区域
显示全部
相似文档