Trasposizione VBA

Abbiamo visto la funzione di trasposizione nel foglio di lavoro Excel quando incolliamo qualsiasi tabella di dati nel foglio di lavoro, ciò che traspone fa è che cambia la posizione di righe e colonne, cioè le righe diventano colonne e le colonne diventano righe in una tabella dati, ora poiché è un foglio di lavoro funzione in VBA la usiamo con il metodo Application.worksheet in VBA.

Come trasporre in VBA?

Il cambio di righe e colonne è una delle tecniche di manipolazione dei dati che quasi tutti gli utenti fanno in Excel. Il processo di conversione dei dati orizzontali in verticali e dei dati verticali in orizzontali è chiamato "Trasponi" in Excel. Sono sicuro che devi avere familiarità con la trasposizione in un normale foglio di lavoro, in questo articolo ti mostreremo come utilizzare il metodo di trasposizione nella codifica VBA.

Possiamo trasporre in VBA usando due metodi.

  1. Trasponi usando TRANSPOSE Formula.
  2. Trasponi usando il metodo speciale Incolla.

Quando stiamo trasponendo stiamo scambiando righe in colonne e colonne in righe. Ad esempio, se i dati sono in un array 4 X 3, diventa un array 3 X 4.

Vediamo alcuni esempi per trasporre da colonna a riga in VBA.

# 1 - VBA Transpose Using TRANSPOSE Formula

Come il modo in cui utilizziamo TRANSPOSE in Excel, allo stesso modo possiamo usare la formula TRANSPOSE anche in VBA. Non abbiamo una formula TRANSPOSE in VBA, quindi dobbiamo usarla nella classe Funzione foglio di lavoro.

Per un esempio, guarda l'immagine dei dati di seguito.

Cercheremo di trasporre questo array di valori. Seguire i passaggi seguenti per trasporre i dati.

Passaggio 1: avviare la sottoprocedura

Codice:

 Sub Transpose_Example1 () End Sub 

Passaggio 2: per prima cosa dobbiamo decidere dove trasporre i dati. In questo, ho scelto di trasporre dalla cella D1 a H2. Quindi, inserisci il codice VBA come Range ("D1: H2"). Value =

Codice:

 Sub Transpose_Example1 () Range ("D1: H2"). Value = End Sub 

Passaggio 3: ora nell'intervallo sopra indicato abbiamo bisogno del valore dell'intervallo da A1 a B5. Per arrivare a questa classe aperta "Funzione foglio di lavoro" e selezionare la formula "Trasponi".

Passaggio 4: In Arg 1 fornire l'intervallo dell'origine dati, ovvero Intervallo ("A1: D5") .

Codice:

 Sub Transpose_Example1 () Range ("D1: H2"). Value = WorksheetFunction.Transpose (Range ("A1: D5")) End Sub 

Ok, abbiamo finito con la codifica della formula TRANSPOSE. Ora esegui il codice per vedere il risultato nell'intervallo di celle da D1 a H2.

Come abbiamo visto l'immagine sopra, ha convertito l'intervallo di celle da colonne a righe.

# 2 - Trasposizione VBA utilizzando il metodo speciale Incolla

Possiamo anche trasporre usando il metodo Incolla speciale. Considera gli stessi dati anche per questo esempio.

La prima cosa che dobbiamo fare per trasporre è copiare i dati. Quindi scrivi il codice come Range ("A1: B5")

Codice:

 Sub Transpose_Example2 () Range ("A1: B5"). Copia End Sub 

La prossima cosa è decidere dove incollare i dati. In questo caso, ho scelto D1 come cella di destinazione desiderata.

Codice:

Sub Transpose_Example2 () Range ("A1: B5"). Copia intervallo ("D1"). End Sub

Una volta selezionata la cella di destinazione desiderata, dobbiamo selezionare "Incolla metodo speciale".

Con paste speciali, possiamo eseguire tutte le azioni che abbiamo con normali metodi incolla speciali in un foglio di lavoro.

Ignora tutti i parametri e seleziona l'ultimo parametro cioè Transpose e rendilo TRUE.

Codice:

 Sub Transpose_Example2 () Range ("A1: B5"). Copia intervallo ("D1"). PasteSpecial Transpose: = True End Sub 

Questo trasporrà anche i dati come il metodo precedente.

In questo modo, possiamo utilizzare la formula TRANSPOSE o il metodo Incolla speciale per trasporre i dati per passare da righe a colonne e da colonne a righe.

Cose da ricordare

  • Se stiamo utilizzando la funzione TRANSPOSE del foglio di lavoro è obbligatorio calcolare un numero di righe e colonne per trasporre i dati. Se abbiamo 5 righe e 3 colonne, durante la trasposizione diventa 3 righe e 5 colonne.
  • Se vuoi la stessa formattazione mentre usi paste special, devi usare l'argomento Paste Type come "xlPasteFormats"

Puoi scaricare questo modello VBA Transpose Excel da qui: VBA Transpose Excel Template