Codice VBA per filtrare una colonna utilizzando la casella di input


0

Sto cercando di filtrare una colonna in base a un codice che l'utente inserisce in una casella di input.

Ho usato il seguente codice:

Sub Filter()
'
' Filter Macro
Dim strName As String
strName = InputBox(“What DMA would you like to search for?”)
Selection.AutoFilter
ActiveSheet.Range("$A$1:$AS$355969").AutoFilter Field:=3, Criteria1:="=*" & strName & “ * ”, Operator:=xlAnd
End Sub

Ma mostra l'errore di compilazione: errore di sintassi nella macro di Excel

Qualcuno può aiutarmi per favore?

Grazie, Dhivya S


1
Simboli di virgolette errati in InputBox arg. Sostituiscili con virgolette doppie ".
Akina,

Sì, trova il mix di tipi di virgolette doppie "e"
spikey_richie il

Ehi ragazzi, grazie per aver individuato l'errore. Ora il problema è che InputBox è visibile eseguendo la macro, ma i dati filtrati non vengono visualizzati. Cosa dovrei fare?
Dhivya Sethu,

Risposte:


0

Presumo che tu voglia la corrispondenza dei caratteri jolly, quindi non hai bisogno dello spazio bianco aggiuntivo nel secondo carattere jolly. Inoltre, è necessario "" corretto e disattivare ScreenUpdating è una buona idea. Puoi anche usare un stato con il tuo intervallo. Meglio sarebbe usare un nome di foglio esplicito piuttosto che Foglio Attivo nel caso in cui l'attuale Foglio Attivo non sia quello che ti aspettavi.

Option Explicit
Public Sub Filter()
    Application.ScreenUpdating = False
    Dim strName As String
    strName = InputBox("What DMA would you like to search for?")
    With ActiveSheet.Range("$A$1:$AS$355969")
        .AutoFilter
        .AutoFilter Field:=3, Criteria1:="*" & strName & "*"
    End With
    Application.ScreenUpdating = True
End Sub

Ciao, grazie per la codifica. ma continua a non funzionare. Mostra solo l'opzione filtrata nella terza colonna, ma non mostra i valori filtrati. Ho degli spazi vuoti qua e là nella gamma di fogli attivi. Ciò causerà qualche problema?
Dhivya Sethu,

Hai un'intestazione in A1? Puoi mostrare un piccolo esempio delle prime 5 colonne con il filtro previsto in atto (inclusa la riga 1 nei dati / immagine)?
QHarr il

Sì, ho un'intestazione in A1. In realtà non so come aggiungere l'immagine in questo commento.
Dhivya Sethu,

0

Puoi provare questo semplice codice per filtrare:

Sub InputFilter()
Dim strInput As String
strInput = InputBox("Enter your value to filter on")
Selection.AutoFilter
ActiveSheet.Range("$A$60:$A$65").AutoFilter Field:=1, Criteria1:=strInput
End Sub

NB Ricorda che il Fieldvalore nel codice è regolabile se i criteri corrispondono alla colonna 2 per filtrare, quindi dovrebbe essereField:=2

Nota, regola i riferimenti di cella come necessario.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.