Come ottenere la prima parola in Microsoft Excel
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.
Puoi trovare la domanda originale http://www.excelforum.com/excel-programming-vba-macros/1093228-keep-first-word-in-each-line-separate-by-semicolon-and-remove-everything-else .html [qui]
Di seguito è riportata un’istantanea del testo di input (prima del foglio)
===
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:
===
===
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
-
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
===
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)
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
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.
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]_