我有一个包含30个左右列的电子表格。我的目标是根据1列过滤集合,我的方法是指定一个范围只是该列,然后过滤该范围。我在每一列都有自动过滤器,当我指定一个字段时:= 1 excel选择第一列... whcih超出我的范围。因此,它总是试图过滤列#34; A" ...不是列" U"如预期的。我误解了如何使用这个领域?我虽然它是一个范围内的偏移量。
这是一个简单的例子
Dim r As Range
Dim sheet As Worksheet
Set sheet = ThisWorkbook.Worksheets("test")
sheet.Range("u1:u9").AutoFilter field:=1, Criteria1:="Will"
作为旁边...是否有办法获得与列字母相关联的列号?例如U - > 21.如果是这样,我可以选择整个电子表格作为范围,并进行21
的偏移答案 0 :(得分:0)
如果要将过滤器应用于一列,则必须先清除现有过滤器。
您的调整代码将是这样的,它将仅将过滤器应用于列U ...
Sub test()
Dim r As Range
Dim sheet As Worksheet
Set sheet = ThisWorkbook.Worksheets("test")
sheet.AutoFilterMode = False
sheet.Range("u1:u9").AutoFilter field:=1, Criteria1:="Will"
End Sub
OR
您也可以将过滤器应用于所有列,并正确指定字段标准。
试一试......
Sub test2()
Dim r As Range
Dim sheet As Worksheet
Set sheet = ThisWorkbook.Worksheets("test")
Set r = sheet.Range("U1")
sheet.AutoFilterMode = False
sheet.Range("A1").CurrentRegion.AutoFilter field:=r.Column, Criteria1:="Will"
End Sub