|
楼主 |
发表于 2011-5-14 23:08
|
显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用 · 内置多项VBA编程加强工具 ★ 免费下载 ★ ★ 使用手册★
以前的解决方法:
Sub 标准高级筛选()
On Error GoTo 1 '如果提示错误,就转移到1位置
'数据库
a1 = Sheets("数据库").Rows(1).Find("*", , xlValues, , , 2).Column '数据库第1行最后列号
a = Split(Cells(1, a1).Address, "$")(1) '转为最后列标
'复制目的位置
b1 = Range("a1:a50").Find("行号").Row '在查找指定文本返回行号
b2 = Rows(b1).Find("*", , xlValues, , , 2).Column '“行号”所在行(标题行)最后列号
b = Split(Cells(1, b2).Address, "$")(1) '转为最后列标
'条件区
c1 = Rows(1).Find("*", , xlValues, , , 2).Column '第1行最后列号
c = Split(Cells(1, c1).Address, "$")(1) '转为最后列标
'高级筛选 (从第1行到筛选标题行上2行是条件行)
Sheets("数据库").Range("a:" & a).AdvancedFilter Action:=xlFilterCopy, _
CriteriaRange:=Range("A1:" & c & b1 - 2), CopyToRange:=Range("A" & b1 & ":" & b & b1), Unique:= _
False
GoTo 2
1: '以下是为出现错误而设置的内容
Call 清除筛选结果
2:
Cells.Find(What:="*", LookAt:=xlPart, MatchByte:=False).Activate '查找不匹配且不区分全角和半角
End Sub |
|