为什么高级FilterCopy只在给定条件范围内的条件时才返回第一行?

我正在做一个项目,我使用VBA高级filter来复制和过滤数据,这取决于通过标准范围的帐号。

当没有标准的复制,似乎执行完美,但只要我input一个标准(accountnumber),它只返回数据的第一行,无论使用哪个accountnumber。 我曾尝试过不同种类的标准操作符(即=“= 510045”或<510045),但无济于事。 以下是高级filter的VBA代码:

Sub AdvFilter_country() 'error statement On Error GoTo errHandler: 'run the advanced filter Sheets("Landrap").Range("A6:H300").AdvancedFilter Action:=xlFilterCopy, _ CriteriaRange:=Sheets("Landrap").Range("A1:H2"),CopyToRange:=Sheets("Landrap").Range("Q6:X300"), Unique:=False 'error block On Error GoTo 0 Exit Sub errHandler:: MsgBox "An Error has Occurred " & vbCrLf & "The error number is: " _ & Err.Number & vbCrLf & Err.Description & vbCrLf & _ "Please notify the administrator" End Sub 

标准范围由2行组成,其中第一行包含与数据相同的标题,第二行用于标准。

有关数据的信息:

  • 所有的数据都是数字,但被注册为string
  • 所有数据以510 *开始,然后是一个唯一的数字
  • 数据前面有4个空格,即“510045”

任何人都知道为什么它忽略了我的标准,只是在范围内的第一行?


网站我曾经得到一个标准运营商的想法: http : //www.excelfunctions.net/ExcelAdvancedFilter.html

解决scheme:正如Dave在评论中回复的,在我的复制范围内,我没有包含A5:H5中的标题。 所以范围是A5:H300和Q5:X300。