Delimitato testo a colonne in una macro

Una delle caratteristiche più comode in Excel è il testo in colonne caratteristica, che permette di dividere facilmente il contenuto delle celle nelle singole celle secondo tutti i criteri specificati. Un metodo per utilizzare la funzione è quella di consentire di riconoscere caratteri all'interno delle cellule e utilizzare tali caratteri per attivare dove la scissione dovrebbe avvenire. Questo tipo di divisione è indicato come una scissione delimitato.

Ci si potrebbe chiedere come è possibile eseguire un delimitato operazione text-to-colonne in una macro si può essere scrivendo. Questo è abbastanza facile da fare utilizzando il metodo TextToColumns su una selezione di impostare. Si consideri il seguente macro molto semplice:

Sub ExampleSplit1 ()
Selection.TextToColumns _
Destinazione: = Range ("A2"), _
DataType: = xlDelimited, _
TextQualifier: = xlDoubleQuote, _
ConsecutiveDelimiter: = FALSE, _
Tab: = TRUE, _
Punto e virgola: = False, _
Comma: = FALSE, _
Spazio: = False, _
Altro: = True, _
OtherChar: = "-"
End Sub

Notate tutte le variabili che si possono impostare per il metodo TextToColumns. La maggior parte di queste variabili sono necessarie solo perché si tratta di una scissione delimitato; le variabili impostate quello che viene utilizzato come delimitatore dal metodo. A partire dalla linea di scheda, le variabili corrispondono direttamente alle impostazioni che si fare nel passaggio 2 della Converti testo in colonne Wizard, se si utilizza la funzione manualmente. È possibile impostare Tab, Punto e virgola, virgola, e lo spazio per True o False, a seconda se si desidera che il carattere utilizzato come delimitatore.

È anche possibile impostare l'altra variabile su True o False, a seconda se si vuole avere un "utente definita" delimitatore. Se si imposta su True, allora si dovrebbe impostare la variabile OtherChar uguale al carattere che si desidera utilizzare come delimitatore.

Se si utilizza il metodo TextToColumns più volte nella stessa macro, l'unica cosa che devi fare sul invocazioni successive alla prima è di cambiare le variabili che differiscono dalla chiamata precedente. Per esempio, diciamo che si sta chiamando il metodo due volte nella stessa macro, e la prima volta che si desidera la divisione sia in un'istanza del personaggio cruscotto, ma la seconda si vuole che sia in qualsiasi istanza di una minuscola x . Si può mettere la macro insieme come questo:

Sub ExampleSplit2 ()
Dim objRange1 come gamma
Dim objRange2 come gamma

'Impostare le gamme
Set objRange1 = Range ("A2: A20")
Set objRange2 = Range ("A21: A35")

'Fare la prima parse
objRange1.TextToColumns _
Destinazione: = Range ("A2"), _
DataType: = xlDelimited, _
Tab: = False, _
Punto e virgola: = False, _
Comma: = FALSE, _
Spazio: = False, _
Altro: = True, _
OtherChar: = "-"

'Fare il secondo parse
objRange2.TextToColumns _
Destinazione: = Range ("A21"), _
DataType: = xlDelimited, _
OtherChar: = "x"
End Sub

ExcelTips è la vostra fonte per la formazione Microsoft Excel conveniente. Questo suggerimento (2929) si applica a Microsoft Excel 97, 2000, 2002, e 2003. È possibile trovare una versione di questo suggerimento per l'interfaccia ribbon di Excel (Excel 2007 e versioni successive) qui: delimitati testo a colonne in una macro.