Estoy usando Excel VBA para filtrar una lista usando la expresión "no es igual". Si uso Criteria1:="<>Bob", el código se ejecuta perfectamente, pero si cambio "Bob" a una variable, el código no se ejecuta.

Esto funciona:

ActiveSheet.ListObjects("Rpt_AM_04_Sales_ShipTo").Range.AutoFilter Field:=4, _
    Criteria1:="<>Bob", Operator:=xlFilterValues

Esto no funciona:

Dim Test_Criteria As String
Test_Criteria = "Bob"
ActiveSheet.ListObjects("Rpt_AM_04_Sales_ShipTo").Range.AutoFilter Field:=4, _
    Criteria1:<>Test_Criteria, Operator:=xlFilterValues

Espero que el código devuelva una lista que incluya a todos excepto a Bob. En cambio, recibo un mensaje de error simplemente escribiendo el código:

Compile error
Expected: named parameter
1
walterpayton34 16 oct. 2019 a las 16:16

1 respuesta

La mejor respuesta

Sintaxis incorrecta

El código no funciona debido a incorrect syntax donde especificas los criterios. Prueba esto:

Cambie esto:

Criteria1:<>Test_Criteria

A esto:

Criteria1:"<>" & Test_Criteria

Código completo:

Dim Test_Criteria As String
Test_Criteria = "Bob"
ActiveSheet.ListObjects("Rpt_AM_04_Sales_ShipTo").Range.AutoFilter Field:=4, _
     Criteria1:="<>" & Test_Criteria, Operator:=xlFilterValues

Espero que esto ayude.

0
Louis 16 oct. 2019 a las 14:00