excel:高级filter中运行时错误1004

我有这张表,我申请了一系列的潜艇来得到我想要的东西。 最后一个是高级filter。

你可以看到我的主表如何:

在这里输入图像描述

我的标准是C31:K32 ,结果应该从第38行粘贴。它从该表中获取信息称为AUX

在这里输入图像描述 完整的代码如下:

Sub FiltroAloc() Dim i As Long Dim j As Long Dim Lastrow As Long Dim ws1 As Worksheet Dim ws2 As Worksheet Dim ws3 As Worksheet Dim res Set ws1 = Sheets("CONSULTA") Set ws2 = Sheets("BASE_TOTAL_ATUAL") Set ws3 = Sheets("AUX") For i = 1 To 100 For j = 1 To 11 If ((ws1.Cells(29, 5).Value < ws2.Cells(i, 7).Value) And (ws1.Cells(29, 6).Value > ws2.Cells(i, 7).Value)) Or ((ws1.Cells(29, 5).Value < ws2.Cells(i, 8).Value) And (ws1.Cells(29, 6).Value > ws2.Cells(i, 8).Value)) Then ws3.Cells(i, j) = ws2.Cells(i, j).Value ElseIf (ws1.Cells(29, 5) = "") And (ws1.Cells(29, 6) = "") Then ws3.Cells(i, j) = ws2.Cells(i, j).Value End If Next j Next i Call Esvaziar End Sub Sub Esvaziar() Dim r As Range, rows As Long, i As Long Dim ws As Worksheet Set ws = Sheets("AUX") Set r = ws.Range("A1:K450") rows = r.rows.Count For i = rows To 1 Step (-1) If WorksheetFunction.CountA(r.rows(i)) = 0 Then r.rows(i).Delete End If Next Call AutoFilter End Sub 

我所有的代码工作正常! 之后,我开始将我的高级filter录制为带有自动filter名称的macros。

当我完成logging时,它工作正常,并加载所有信息,因为我没有logging在我的标准。

问题是当我嘲笑我的“Filtrar”button。 它给了我

运行时错误“1004” – object'_Global的方法“范围”失败

这就是代码:

 Sub AutoFilter() ' ' AutoFilter Macro ' ' Sheets("AUX").Range("A1:K176").AdvancedFilter Action:=xlFilterCopy, _ CriteriaRange:="CONSULTA!Criteria", CopyToRange:=Range("CONSULTA!Extract") _ , Unique:=False ActiveWindow.SmallScroll Down:=-21 Range("G3").Select End Sub 

突出部分:

 Sheets("AUX").Range("A1:K176").AdvancedFilter Action:=xlFilterCopy, _ CriteriaRange:="CONSULTA!Criteria", CopyToRange:=Range("CONSULTA!Extract") _ , Unique:=False 

我尝试了很多东西,但我想我错过了一些东西。 我不知道在哪里find我的范围问题…任何build议将不胜感激。

CriteriaRange:=worksheets("CONSULTA").Range("Criteria")CopyToRange:=worksheets("CONSULTA").Range("Extract")

 Sheets("AUX").Range("A1:K176").AdvancedFilter Action:=xlFilterCopy, _ CriteriaRange:=worksheets("CONSULTA").Range("Criteria"), _ CopyToRange:=worksheets("CONSULTA").Range("Extract"), Unique:=False