Cerca due colonne in Microsoft Excel 2013 e imposta il valore di una terza colonna con un valore specifico


0

Voglio cercare un testo specifico che è l' firstname_lastnameesempio John_Smithin worksheetA. WorksheetAha una colonna firstnamee un'altra colonna lastname. Quindi, dopo aver saputo quale riga ha il nome e il cognome che ho cercato, voglio impostare il valore della cella nella stessa riga con un valore specifico.

Ad esempio se questo è il mio foglio di lavoro:

Firstname     Lastname     Found
Matt          Damon        No
Smith         Andrew       No
John          Smith        No
Tom           Mark         No

e la mia parola di ricerca è John_Smithil risultato sarà

Firstname     Lastname     Found
Matt          Damon        No
Smith         Andrew       No
John          Smith        Yes
Tom           Mark         No

Qualche consiglio per favore come può essere fatto in Excel VBA?


Benvenuto in Super User. Non siamo un servizio di scrittura di script. Ci aspettiamo che gli utenti ci dicano cosa hanno provato finora (incluso il codice che stanno usando) e dove sono bloccati in modo da poter aiutare con problemi specifici. Le domande che richiedono solo codice sono troppo ampie e possono essere messe in attesa o chiuse . Si prega di leggere Come posso fare una buona domanda? .
DavidPostill

Il modo più semplice per farlo è probabilmente con una colonna helper. Combina nome e cognome in una nuova colonna e poi cerca lì.
fixer1234,

Risposte:


1

Questo codice dovrebbe funzionare:

Public Sub searchfullname()
    fullname = InputBox("Input first and last name separated by _")
    namesarray = Split(fullname, "_")
    i = 2
    dataintable = True
    result = "No"
    m = ActiveSheet.Cells(i, 1)
    If m = "" Then dataintable = False
    While dataintable = True
        result = "No"
        If m = namesarray(0) Then
            n = ActiveSheet.Cells(i, 2)
            If n = namesarray(1) Then
                result = "Yes"
            End If
        End If
        ActiveSheet.Cells(i, 3) = result
        i = i + 1
        m = ActiveSheet.Cells(i, 1)
        If m = "" Then dataintable = False
    Wend
End Sub
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.