我正在尝试在VBA中动态过滤范围,而我正在使用的VBA无法正常工作,但我无法看到原因。为了解释,我在一张名为“Full Stock Report
”的工作表中有一系列数据,其大小会发生变化,但我在这个例子中已经静态设置了......我试图按列表过滤它在一个工作表范围内保存的标准“Spitfire Aval Locations
”,同样这也是动态的,但我在这个例子中再次设置为静态。这对我来说听起来很简单,但下面的代码行应用了一个过滤器但没有结果(我已经检查过,我知道这个过滤器中应该有很多应用)。
我的第二个问题是相关的,这个VBA语句如何指示范围中的哪一列被过滤? (我担心这可能是我的问题....)
Sheets("Full Stock Report").Range("A1:F20623").AdvancedFilter Action:=xlFilterInPlace,
CriteriaRange:=Sheets("Spitfire Aval Locations").range("A2:A228"), Unique:=False
答案 0 :(得分:1)
想想我已经解决了这个问题......本质上,AdvancedFilter要求条件与您的数据集具有相同的格式和相同的列标题。对我来说并不是很有帮助,但我可以把它用来工作。
我也有预感,具有指定标准的AutoFilter可能是更好的选择......
答案 1 :(得分:0)
要过滤的列是您调用.AdvancedFilter的第一个.Range。您发布的代码会过滤A到F列。如果您只想根据A列中的值进行过滤,则看起来更像是这样:
Sheets("Full Stock Report").Range("A1:A20623").AdvancedFilter _
Action:=xlFilterInPlace, _
CriteriaRange:=Sheets("Spitfire Aval Locations").Range("A2:A228"), _
Unique:=False