Excel的高级筛选结果复制到其他区域,如何只复制值??用宏如何操作?

我的筛选区域是公式,复制的时候不要复制公式,只要复制里面的值就好了
用宏如何修改?
Sub Macro2()
Columns("A:M").AdvancedFilter Action:=xlFilterCopy, CriteriaRange:=Range( _
"Q1:Q2"), CopyToRange:=Range("Q4"), Unique:=False
Range("Q4").Select
End Sub

其实,高级筛选结果本身就可以把筛选的结果放到你想要的任何位置,在高级筛选时选择“将筛选结果复制到其他位置”。如想复制以前筛选的结果,可以用选择性粘贴,并选择数值就只复制值了。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-04-01
把结果赋值给数组,再把结果区域删除,数组输出就可以了。
Sub Macro2()
Columns("A:M").AdvancedFilter Action:=xlFilterCopy, CriteriaRange:=Range( _
"Q1:Q2"), CopyToRange:=Range("Q4"), Unique:=False
arr=Range("Q4").CurrentRegion
Range("Q4").CurrentRegion.clear
Range("Q4").resize(ubound(arr,1),ubound(arr,2))=arr
End Sub追问

谢谢你!
但是结果就已经是带公式复制后的值了呀,里面的值是公式复制后变更的值,不是原来的值了

追答

你需要的不就是数值吗?

追问

但是公式复制后变更了呀,值也就变了
比如公式原来是"=Sheet1!A3" 复制后变成"=Sheet!Q3",值也就不对了。我要的是Sheet1!A3里的值

追答

复制得到的就是值,怎么会是公式?
可能没附件参考不到你的实际情况。

本回答被提问者采纳
第2个回答  2011-04-01
复制后,用选择性粘贴 选数值 就OK了

补充:
Selection.PasteSpecial Paste:=xlPasteValues追问

我问的是高级筛选里的复制,不是一般的复制!!

追答

Columns("A:D").Select
Range("A1:D8").AdvancedFilter Action:=xlFilterCopy, CriteriaRange:=Range( _
"A2:A8"), CopyToRange:=Range("G1"), Unique:=True
Range("H12").Select
这是我的高级筛选结果,A1:D8很多公式,复制到G1后所有公式全部被替换成了数值,没有公式了。