我在尝试在Excel中设置VBA代码时遇到了噩梦。如果仅在姓名列表的底部选择条件范围(例如$ AM $ 2001:$ AM),我就能够使用1列基于人名列表的条件范围来成功过滤掉数据$ 2100)。
问题是我想超越名称列表的底部进入空白单元格,这样,如果将来添加任何名称,它将自动进行相应更新。但是,由于列表是从单独的工作表中超链接的,因此条件是选择0并在过滤结果中显示所有空白。
如何调整我的代码,以使这些“空白”单元格或“ 0”单元格不显示?会因为超链接而无法工作吗?我当前的代码如下:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Range("$F$1:$F$2000").AdvancedFilter Action:=xlFilterInPlace, CriteriaRange:=Range _
("$AM$2001:$AM$2200"), Unique:=False
End Sub
如上所述,问题似乎是因为名称列表实际上以AM2100结尾,而不是以AM2200结尾。超链接表中的AM2101到AM2200都用0填充。
答案 0 :(得分:0)
尝试
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Range("$F$1:$F$2000").AdvancedFilter Action:=xlFilterInPlace, CriteriaRange:=Range _
("$AM$2001:$AM$" & UsedRange.Rows.Count()), Unique:=False
End Sub
如果仍然带来太多单元格(使用范围大于AM列中使用的行数,请尝试
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Range("$F$1:$F$2000").AdvancedFilter Action:=xlFilterInPlace, CriteriaRange:=Range _
("$AM$2001:$AM$" & Range("$AM$2001").End(xlDown).Row()), Unique:=False
End Sub