我编写了一个代码,用于按选定的单元格值进行过滤,以创建一个快速访问工具栏图标并使其更快地进行过滤。当过滤器在A列中启动时,它工作得很好。但是某些过滤器在B或C列中启动...,并且该值在另一列中进行了过滤,跳过了完全相同数量的没有过滤器的空白列。你们知道如何解决吗?如何使VBA返回字段号? 答案 0 :(得分:0) 我在理解您的问题时遇到了一些麻烦,但我认为您的情况看起来像这样: 在此示例中,如果运行了给定的代码,我们将在E列而不是C列进行过滤。 这是因为所选单元格在第3列中。但是,我们要过滤的字段不是AutoFilter中的第3个字段,而是AutoFilter中的第1个字段。看来代码 尝试以下方法: 在这里,我们选择选定列(ActiveCell.Column)的位置,并减去AutoFilter开始的列号。我们希望从1开始而不是从0开始计数,因此我们需要在结果中加1。 希望有帮助。Sub Filtro_Valor_Célula()
'Filtra a coluna pelo valor da célula selecionada
'
Valor = ActiveCell.Value
ActiveSheet.Range(ActiveSheet.AutoFilter.Range.Address).AutoFilter Field:=ActiveCell.Column, Criteria1:=Valor
End Sub
1 个答案:
Field:=ActiveCell.Column
的位置对我们来说没有做对。Sub Filtro_Valor_Célula()
'Filtra a coluna pelo valor da célula selecionada
'
Valor = ActiveCell.Value
FieldToFilter= ActiveCell.Column - ActiveSheet.AutoFilter.Range.Column + 1
ActiveSheet.Range(ActiveSheet.AutoFilter.Range.Address).AutoFilter Field:=FieldToFilter, Criteria1:=Valor
End Sub