JavascriptProva

martedì 18 marzo 2014

Disunire celle in Excel mettendo in ognuna il testo precedentemente appartenuto all'unione.

Separare una cella "unita" in Excel e mettere in tutte le celle ex facenti parte dell'unione il testo contenuto originariamente nell'unione.

Scrivo nella prima cella della colonna A una parola qualunque, "ciao".
Unisco le celle fino a A15.

...e ci lavoro...

L'unica soluzione che mi è venuta in mente è questa:
Sub azione()
Dim testo As String
Dim numero As Integer
numero = Range("A1").MergeArea.Count
For n = 1 To numero
If Range("A1").MergeArea(n).Formula <> "" Then testo = Range("A1").MergeArea(n).Formula
Next n
Range("A1").UnMerge
For n = 1 To numero
Range("A" & n).Formula = testo
Next n
End Sub
Questa è necessaria per individuare l'unica cella in cui c'è un testo:
For n = 1 To numero
If Range("A1").MergeArea(n).Formula <> "" Then testo = Range("A1").MergeArea(n).Formula
Next n


Memorizzando prima il numero delle celle facenti parte dell'unione:
numero = Range("A1").MergeArea.Count
si usa successivamente quando le celle sono state disunite, per metterci il testo precedentemente rilevato
For n = 1 To numero
Range("A" & n).Formula = testo
Next n


Può essere che esista qualche funzione di VBA che permetta una soluzione più breve, ma al momento non sono riuscito a individuarne nessuna.

Nessun commento:

Posta un commento