VBA过滤器卡在第二行
我使用以下代码在多个工作表上进行筛选: 场景是我从一个工作簿复制数据并将其粘贴到当前工作簿。工作表(表1至表13 S)通过公式从工作表中提取复制数据。我对其他具有相同结构化数据的工作簿使用了相同的代码,唯一的区别是我复制了不同的行 出于某种奇怪的原因,在本工作簿中,从表1到表13,文件管理器卡在第二行。然而,对于表1s至表13s,过滤器均正常 我在为这个哈哈大笑而努力VBA过滤器卡在第二行,vba,excel,filter,Vba,Excel,Filter,我使用以下代码在多个工作表上进行筛选: 场景是我从一个工作簿复制数据并将其粘贴到当前工作簿。工作表(表1至表13 S)通过公式从工作表中提取复制数据。我对其他具有相同结构化数据的工作簿使用了相同的代码,唯一的区别是我复制了不同的行 出于某种奇怪的原因,在本工作簿中,从表1到表13,文件管理器卡在第二行。然而,对于表1s至表13s,过滤器均正常 我在为这个哈哈大笑而努力 Set y = ActiveWorkbook y.Sheets("Table 1").Range("AA2").AutoFil
Set y = ActiveWorkbook
y.Sheets("Table 1").Range("AA2").AutoFilter Field:=27, Criteria1:="x"
y.Sheets("Table 2").Range("AB2").AutoFilter Field:=28, Criteria1:="x"
y.Sheets("Table 3").Range("AC2").AutoFilter Field:=29, Criteria1:="x"
y.Sheets("Table 4").Range("AD2").AutoFilter Field:=30, Criteria1:="x"
y.Sheets("Table 8").Range("AE2").AutoFilter Field:=31, Criteria1:="x"
y.Sheets("Table 11").Range("AF2").AutoFilter Field:=32, Criteria1:="x"
y.Sheets("Table 12").Range("AG2").AutoFilter Field:=33, Criteria1:="x"
y.Sheets("Table 13").Range("AH2").AutoFilter Field:=34, Criteria1:="x"
y.Sheets("Table 1 S").Range("AA2").AutoFilter Field:=27, Criteria1:="x"
y.Sheets("Table 2 S").Range("AB2").AutoFilter Field:=28, Criteria1:="x"
y.Sheets("Table 3 S").Range("AC2").AutoFilter Field:=29, Criteria1:="x"
y.Sheets("Table 4 S").Range("AD2").AutoFilter Field:=30, Criteria1:="x"
y.Sheets("Table 8 S").Range("AE2").AutoFilter Field:=31, Criteria1:="x"
y.Sheets("Table 11 S").Range("AF2").AutoFilter Field:=32, Criteria1:="x"
y.Sheets("Table 12 S").Range("AG2").AutoFilter Field:=33, Criteria1:="x"
y.Sheets("Table 13 S").Range("AH2").AutoFilter Field:=34, Criteria1:="x"
我无法复制您遇到的确切问题。工作表之间可能存在某些差异,使得Excel无法正确猜测筛选范围。我不知道问题的根本原因是什么,但我认为告诉excel要设置过滤器的显式范围将解决问题。否则,excel会猜测您想要的范围 例如,如果
表1
的数据范围(包括标题)是AA1到AF500,那么我将使代码如下所示:
y.Sheets(“表1”)。范围(“AA1:AF500”)。自动筛选字段:=27,标准1:=“x”
如果范围是动态的,VBA有很多不同的方法来处理。因此,您可以使用其中一种技术明确指定动态范围。当您说过滤器卡在第二行时,您的意思是下拉列表在第二行吗?@Jarom是的,下拉列表在第二行尝试将所有范围更改为
.range(“AA2”)
到。UsedRange
如下:y(“表1”).UsedRange.AutoFilter字段:=27,标准1:=“x”
@paulbica哇,这真是个奇迹!我很高兴你把它整理好了!我想你是对的-我可以用2个标题复制这个问题rows@Jarom我使用了paul bica的方法,将all range设置为usedrange,现在下拉列表位于正确的位置。