平,
我在excel中有2张纸,想要从1张我需要客户信息的纸张到2张我需要过滤数据的纸张。
所以我做了这个宏,用于在工作表2上过滤数据。
`Sub choice()
'
' choice Macro
'
Dim parameter As Range, data As Range, result As Range
Set parameter = Range("param").CurrentRegion
Set data = Range("table").CurrentRegion
Set result = Range("result").CurrentRegion.Offset(1, 0)
result.ClearContents
Set result = Range("result").CurrentRegion
data.AdvancedFilter Action:=xlFilterCopy, CriteriaRange:=parameter _
, CopyToRange:=result, Unique:=False
End Sub`
data =“table” - 1张表上的客户表
然而,它会复制粘贴客户信息中的所有数据。
是否有可能以某种方式在此宏中添加代码以仅从那里获取FirstName和Lastname?
谢谢!
答案 0 :(得分:0)
这可能与您为数据,标准和目的地定义范围的方式有关。下面的代码应该有助于显示明确的范围。
假设您要在Sheet1列A:F
中过滤数据,要过滤的条件在I1:N2
范围内,过滤后的数据要复制到列P:U
代码的第一行只会根据E:F
中的条件将列T:U
放入I1:N2
列中
第二行会根据相同的条件将A:F
的所有过滤数据放入P:U
。
另外,请确保字段/列标题与数据/条件/目标
完全匹配Sub test()
'Returns E:F in destination range T:U based on filter criteria
Sheet1.Columns("A:F").AdvancedFilter Action:=xlFilterCopy, CriteriaRange:= _
Sheet1.Range("I1:N2"), _
CopyToRange:=Sheet1.Range("T1:U1"), Unique:=True
'Returns full range A:F in destination range P:U based on filter criteria
Sheet1.Columns("A:F").AdvancedFilter Action:=xlFilterCopy, CriteriaRange:= _
Sheet1.Range("I1:N2"), _
CopyToRange:=Sheet1.Range("P1:U1"), Unique:=True
End Sub