|
Info |
|
|
|
Esempi |
|
|
|
Linguaggio |
|
|
|
Librerie |
|
|
|
Formule |
|
|
|
|
|
|
|
|
|
Ultimi Inseriti |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Questa funzione mostra come sia possibile scrivere una funzione divide un testo in singole celle disposte in riga, in colonna o in matrice disposta in righe e colonne.
Utilizza un'altra funzione estremamente utile che permette di separarare una stringa, utilizzando le espressioni regolari, in un vettore di singoli testi.
Nell'esempio a lato si può vedere il risultato della funzione, partendo da:
- un testo scritto su unica cella con dei separatori
- uno o più separatori
Suddivide i singoli nomi in celle singole disposte:
- su riga (il numero di celle in cui è stata copiata la funzione può non essere sufficiente a contenere tutti i valori)
- in colonna;
- in tabella riga colonna da sinistra a destra e dall'alto in basso.
|
Function Dividi_Testo_In_Celle( Testo As String, Separatori As String) As Variant
Dim strRegExp As String
strRegExp = "[^" & Separatori & "\s][^\" & Separatori & "]*[^" & Separatori & "\s]"
arrMatch = GetMatchesWithRegExp( Testo, strRegExp)
'determina le dimensioni dell'area di destinazione
With Application.Caller
nrRows = . Rows.Count
nrCols = . Columns.Count
End With
'crea il vettore dei risultati e impposta tutte le celle a ''
Dim arrRes() As Variant
ReDim arrRes(nrRows - 1, nrCols - 1)
R = LBound(arrRes, 1)
While (R <= UBound(arrRes, 1))
C = LBound(arrRes, 2)
While (C <= UBound(arrRes, 2))
arrRes(R, C) = ""
C = C + 1
Wend
R = R + 1
Wend
'riporta il vettore dei risultati nel range di destinazione
i = 0
R = LBound(arrRes, 1)
While (R <= UBound(arrRes, 1))
C = LBound(arrRes, 2)
While (C <= UBound(arrRes, 2))
If (i > UBound(arrMatch)) Then
GoTo EndProc
End If
arrRes(R, C) = arrMatch(i)
i = i + 1
C = C + 1
Wend
R = R + 1
Wend
EndProc:
Dividi_Testo_In_Celle = arrRes
End Function
Gli esempi contenuti nel sito sono per uso personale, non é consentito l'uso professionale, commerciale o la riproduzione senza autorizzazione.
|
|
|