Peralihan VBA

Kami telah melihat fungsi transpos dalam lembar kerja excel ketika kami menampal sebarang jadual data ke lembar kerja, apa yang dilakukan oleh transpos adalah ia mengubah kedudukan baris dan lajur iaitu baris menjadi lajur dan lajur menjadi baris dalam tabel data, sekarang kerana ini adalah lembar kerja berfungsi dalam VBA kita menggunakannya dengan kaedah Application.worksheet di VBA.

Bagaimana Memindahkan dalam VBA?

Menukar baris dan lajur adalah salah satu teknik manipulasi data yang hampir semua pengguna lakukan di excel. Proses menukar data mendatar menjadi data menegak dan menegak menjadi mendatar disebut sebagai "Transpose" di excel. Saya pasti anda sudah biasa dengan Transposisi dalam lembaran kerja biasa, dalam artikel ini kami akan menunjukkan kepada anda bagaimana menggunakan kaedah transpos dalam pengekodan VBA.

Kita boleh menggunakan VBA menggunakan dua kaedah.

  1. Transpos Menggunakan Formula TRANSPOSE.
  2. Transpos Menggunakan Kaedah Khas Tampal.

Semasa kita melakukan transposisi, kita menukar baris ke lajur dan lajur ke baris. Sebagai contoh, jika data berada dalam array 4 X 3 maka ia menjadi array 3 X 4.

Mari lihat beberapa contoh untuk mengalihkan lajur ke baris dalam VBA.

# 1 - Transpos VBA Menggunakan Formula TRANSPOSE

Seperti bagaimana kita menggunakan TRANSPOSE di excel, kita juga boleh menggunakan formula TRANSPOSE di VBA. Kami tidak mempunyai formula TRANSPOSE di VBA, jadi kami perlu menggunakan kelas Worksheet Function.

Sebagai contoh lihat gambar data di bawah.

Kami akan cuba mengubah susunan nilai ini. Ikuti langkah-langkah di bawah ini untuk memindahkan data.

Langkah 1: Mulakan subproses

Kod:

 Sub Transpose_Contoh1 () Akhir Sub 

Langkah 2: Pertama kita perlu memutuskan di mana kita akan memindahkan data. Dalam ini, saya telah memilih untuk menukar dari sel D1 ke H2. Jadi, masukkan kod VBA sebagai Julat ("D1: H2"). Nilai =

Kod:

 Sub Transpose_Contoh1 () Julat ("D1: H2"). Nilai = Sub Akhir 

Langkah 3: Sekarang dalam julat yang disebutkan di atas, kita memerlukan nilai julat A1 hingga B5. Untuk tiba di kelas "Fungsi Lembar Kerja" terbuka ini dan pilih formula "Transpose".

Langkah 4: Di Arg 1 berikan julat sumber data iaitu Julat ("A1: D5") .

Kod:

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

Ok, kita sudah selesai dengan pengekodan formula TRANSPOSE. Sekarang jalankan kod untuk melihat hasilnya dalam sel D1 hingga H2.

Seperti yang telah kita lihat di atas, gambar ini telah mengubah julat sel dari lajur menjadi baris.

# 2 - Transpos VBA Menggunakan Kaedah Khas Tampal

Kita juga boleh menggunakan kaedah Paste Special. Pertimbangkan data yang sama untuk contoh ini juga.

Perkara pertama yang perlu kita lakukan untuk memindahkan adalah menyalin data. Oleh itu, tulis kodnya sebagai Julat ("A1: B5"). Salin

Kod:

 Sub Transpose_Example2 () Julat ("A1: B5"). Salin Sub Akhir 

Perkara seterusnya adalah kita perlu memutuskan di mana kita akan menampal data. Dalam kes ini, saya telah memilih D1 sebagai sel tujuan yang dikehendaki.

Kod:

Sub Transpose_Example2 () Julat ("A1: B5"). Julat Salin ("D1"). Sub Akhir

Setelah sel tujuan yang diinginkan dipilih, kita perlu memilih "Paste Special Method".

Dengan tampalan khas, kita dapat melakukan semua tindakan yang kita lakukan dengan kaedah khas tampal biasa dalam lembaran kerja.

Abaikan semua parameter dan pilih parameter terakhir iaitu Transpose dan jadikan ini sebagai BENAR.

Kod:

 Sub Transpose_Contoh2 () Julat ("A1: B5"). Julat Salin ("D1"). Transpes Khas Transpose: = True End Sub 

Ini juga akan mengalihkan data seperti kaedah sebelumnya.

Seperti ini, kita dapat menggunakan formula TRANSPOSE atau kaedah Paste Special untuk mentransfer data untuk menukar baris ke lajur dan lajur ke baris.

Perkara yang Perlu Diingat

  • Sekiranya kita menggunakan fungsi lembar kerja TRANSPOSE, kita mesti menghitung sejumlah baris dan lajur untuk mentransfer data. Sekiranya kita mempunyai 5 baris dan 3 lajur maka semasa memindahkannya menjadi 3 baris dan 5 lajur.
  • Sekiranya anda mahukan format yang sama semasa menggunakan pasta khas maka anda harus menggunakan argumen Paste Type sebagai "xlPasteFormats"

Anda boleh memuat turun Templat Transpose Excel VBA ini dari sini - Templat VBA Transpose Excel