VBA技巧36复制自动筛选后的数据区域
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
技巧1 复制自动筛选后的数据区域
用户在对如图用户在对如图
1-1所示的数据列表进行自动筛选后,往往希望将自动筛选的结果复制到其它地方。
到其它地方。
图 1-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 方法请参阅错误!未找到引用源。
),得到筛选结果的单元格区域,然后使用Copy 方法将结果区域复制到工作表Sheet2中,应用于Range 对象的Copy 方法将单元格区域复制到指定的区域或剪贴板中,语法如下:语法如下:
expression.Copy(Destination)
参数expression 是必需的,该表达式返回一个Range 对象。
对象。
参数Destination 是可选的,指定区域要复制到的目标区域。
如果省略该参数,则将该区域复制到剪贴板中。
区域复制到剪贴板中。
运行CopyFilter 过程工作表Sheet2如图如图 1-2所示。
所示。
图 1-2 复制筛选区域复制筛选区域。