Se ti imbatti in una situazione in cui richiedi solo la prima parola di ogni riga di una cella anziché tutto il carattere, devi leggere questo articolo. Il seguente tutorial ti aiuterà a recuperare solo la prima parola tramite il codice VBA in excel.

In questo articolo, ci concentreremo su come mantenere la prima parola solo in ogni riga di una cella separata da punto e virgola tramite codici macro.

Domanda: I dati su cui sto lavorando hanno a volte più righe in ciascuna cella e voglio estrarre solo la prima parola.

Di seguito è riportata un’istantanea del testo di input (prima del foglio)

img1

===

Di seguito è riportata un’istantanea del testo di input (After Sheet) nella colonna A e richiede l’output nella colonna B; fare riferimento all’istantanea sottostante:

===

img2

===

Per ottenere il codice; è necessario seguire i passaggi seguenti per avviare l’editor VB Fare clic sulla scheda Sviluppatore Dal gruppo Codice, selezionare Visual Basic

img3

  • Copia il codice seguente nel modulo standard

Function FirstWordOnly(rng As Range)

Dim Arr() As Variant

Dim Count As Integer

Dim i As Integer



Count = Len(rng) - Len(Replace(rng, Chr(10), ""))



If Count > 0 Then

ReDim Arr(0 To Count)

For i = 0 To Count

If i = 0 Then

Arr(i) = Left(rng, InStr(1, rng, " ") - 1)

ElseIf j = 0 Then

j = InStr(1, rng, Chr(10))

Arr(i) = Mid(rng, j + 1, InStr(j, rng, " ") - j)

Else

j = InStr(j + 1, rng, Chr(10))

Arr(i) = Mid(rng, j + 1, InStr(j, rng, " ") - j)

End If

Next



FirstWordOnly = Join(Arr, "; ")

Else

If InStr(1, rng, " ") > 0 Then

FirstWordOnly = Left(rng, InStr(1, rng, " "))

Else

FirstWordOnly = rng

End If



End If



End Function

img4

===

Ora il codice VBA è pronto per l’uso; useremo la funzione definita dall’utente appena creata, ad esempio “FirstWordOnly” in Before Sheet.

Per ottenere l’output utilizzando UDF nella cella B2 la formula sarà = FirstWordOnly (A2)

img5

Spiegazione del codice:

Nel codice sopra, abbiamo usato le funzioni COUNT, LEN, REPLACE, IF, INSTR, MID, CHR, LEFT, JOIN VBA.

“Len (rng)”; questo controllerà la lunghezza della cella a cui ci riferiamo “Sostituisci (rng, Chr (10),” “)”; Il codice controlla Chr (10) cioè interruzione di riga in ogni riga e poi sostituisce con virgolette doppie (niente)

‘Count = Len (rng) – Len (Replace (rng, Chr (10), “”))’; Count memorizzerà la differenza di lunghezza di ciascuna riga dopo aver sostituito l’interruzione di riga If Count> 0; questo controllerà se la lunghezza di Count è maggiore di zero e se viene trovata uguale a zero, cioè la cella è vuota, la condizione IF non eseguirà il codice. Per verificarlo, puoi usare = FirstWordOnly (A5) nella cella B5 e restituirà 0

img6

Se la cella non è vuota, verrà utilizzato il ciclo For con la condizione IF e, con la funzione LEFT, recupereremo la prima parola La funzione JOIN aggiungerà punto e virgola alla fine se ci sono più righe in ogni cella Conclusione: Usando UDF possiamo rimuovere tutto in ogni riga di cella tranne la prima parola tramite VBA. Questa funzione funzionerà in tutte le versioni dalla vecchia alla nuova, ad esempio Microsoft Excel 2003, Microsoft Excel 2007, Microsoft Excel 2010, Microsoft Excel 2013.

image 48

Se i nostri blog ti sono piaciuti, condividilo con i tuoi amici su Facebook. E anche tu puoi seguirci su Twitter e Facebook.

_ Ci piacerebbe sentire la tua opinione, facci sapere come possiamo migliorare, integrare o innovare il nostro lavoro e renderlo migliore per te. Scrivici a [email protected]_