Rentetan daripada VBA menjadi Array

Excel VBA Split String menjadi Array

Rentetan adalah kumpulan watak yang digabungkan, apabila watak-watak ini dibahagikan dan disimpan dalam pemboleh ubah maka pemboleh ubah tersebut menjadi larik bagi watak-watak ini dan kaedah yang kami gunakan untuk membagi rentetan untuk dijadikan array adalah dengan menggunakan fungsi SPLIT di vba yang membahagi rentetan dalam rentetan satu dimensi.

Seperti lembaran kerja di VBA juga kita mempunyai fungsi untuk menangani nilai String atau Teks. Kami sangat biasa dengan operasi rentetan seperti mengekstrak nama fir, nama belakang, nama tengah, dan lain-lain. Tetapi bagaimana dengan idea untuk membelah nilai rentetan menjadi tatasusunan di VBA? Ya, anda betul mendengar kami dapat membagi kalimat rentetan menjadi susunan dengan menggunakan pengekodan VBA dan dalam artikel khas ini, kami akan menunjukkan kepada anda cara membagi rentetan menjadi larik dalam Excel VBA.

Apakah Split String menjadi Array?

Izinkan saya menjelaskan ini terlebih dahulu, "String to Array" tidak lain hanyalah "bahagian ayat atau rentetan yang berlainan akan dibahagikan kepada beberapa bahagian". Contohnya, jika kalimat tersebut adalah "Bangalore adalah ibu kota Karnataka" maka setiap kata adalah susunan yang berbeza.

Jadi, cara membahagikan ayat ini menjadi larik adalah topik artikel ini.

Bagaimana Menukar String Split menjadi Array di Excel VBA?

Untuk menukar rentetan menjadi array dalam VBA kita memiliki fungsi yang disebut "SPLIT". Ini adalah fungsi VBA yang melakukan tugas membelah nilai rentetan yang dibekalkan ke bahagian yang berbeza berdasarkan pembatas yang disediakan.

Contohnya, jika kalimat itu "Bangalore adalah ibu kota Karnataka" ruang adalah pembatas antara setiap kata.

Berikut adalah sintaks fungsi SPLIT.

  • Nilai atau Ekspresi: Ini adalah rentetan atau nilai teks yang kami cuba ubah ke array dengan memisahkan setiap bahagian rentetan.
  • [Pembatas]: Ini hanyalah perkara biasa yang memisahkan setiap perkataan dalam rentetan. Dalam kalimat kami "Bangalore adalah ibu kota Karnataka" setiap perkataan dipisahkan oleh watak ruang sehingga pembatas kami adalah ruang di sini.
  • [Limit]: Batasan tidak lain adalah berapa banyak bahagian yang kita mahukan sebagai hasilnya. Sebagai contoh dalam kalimat "Bangalore adalah ibu kota Karnataka" kita mempunyai tujuh bahagian jika kita hanya memerlukan tiga bahagian maka kita akan mendapat bahagian pertama sebagai "Bangalore", bahagian kedua sebagai "adalah" dan bahagian ketiga sebagai sisa hukuman iaitu "ibu kota Karnataka".
  • [Bandingkan]: Ini tidak digunakan 99% sepanjang masa, jadi jangan sampai menyentuh perkara ini pada waktu ini.
Anda boleh memuat turun Templat Split String ke Array Excel VBA ini di sini - Templat Split String VBA ke dalam Array Excel

Contoh # 1

Ok, sekarang mari kita lihat contoh praktikal.

Langkah 1: Tentukan pemboleh ubah VBA untuk menahan nilai rentetan.

Kod:

 Sub String_To_Array () Dim StringValue Sebagai String End Sub 

Langkah 2: Untuk pemboleh ubah ini tetapkan rentetan "Bangalore adalah ibu kota Karnataka".

Kod:

 Sub String_To_Array () Dim StringValue Sebagai String StringValue = "Bangalore adalah ibu kota Karnatka" End Sub 

Langkah 3: Seterusnya tentukan satu lagi pemboleh ubah yang dapat menahan setiap bahagian nilai rentetan di atas. Mengenai hal ini, kita harus ingat di sini kerana kalimat mempunyai lebih dari satu kata, kita perlu mendefinisikan pemboleh ubah sebagai "Array" untuk menyimpan lebih dari satu nilai.

Dalam kes ini, kita mempunyai 7 kata dalam rentetan itu, tentukan susunannya seperti berikut.

Kod:

 Sub String_To_Array () Dim StringValue As String StringValue = "Bangalore adalah ibu kota Karnatka" Dim SingleValue () Sebagai String End Sub 

Sekarang untuk pemboleh ubah array ini, kita akan menggunakan fungsi SPLIT untuk memisahkan rentetan menjadi array dalam Excel VBA.

Kod:

 Sub String_To_Array () Dim StringValue As String StringValue = "Bangalore adalah ibu kota Karnataka" Dim SingleValue () Sebagai String SingleValue = Split (StringValue, "") End Sub 

Ungkapan adalah nilai rentetan kami iaitu pemboleh ubah sudah menyimpan nilai rentetan jadi masukkan nama pemboleh ubah sahaja.

Pembatas dalam rentetan ini adalah watak ruang jadi berikan yang sama.

Kod:

 Sub String_To_Array () Dim StringValue As String StringValue = "Bangalore adalah ibu kota Karnataka" Dim SingleValue () Sebagai String SingleValue = Split (StringValue, "") End Sub 

Mulai sekarang tinggalkan bahagian lain fungsi SPLIT.

Fungsi SPLIT membahagi nilai rentetan menjadi 7 keping setiap perkataan yang diasingkan dengan mengorbankan watak ruang. Oleh kerana kita telah menyatakan pemboleh ubah "SingleValue" sebagai array, kita dapat menetapkan semua 7 nilai untuk pemboleh ubah ini.

Kita boleh menulis kodnya seperti berikut.

Kod:

 Sub String_To_Array () Dim StringValue As String StringValue = "Bangalore adalah ibu kota Karnataka" Dim SingleValue () Sebagai String SingleValue = Split (StringValue, "") MsgBox SingleValue (0) End Sub 

Jalankan kod dan lihat apa yang kita dapat di kotak mesej.

Sehingga sekarang, kita dapat melihat kata pertama iaitu "Bangalore" untuk menunjukkan kata-kata lebih lanjut kita dapat menulis kodnya seperti berikut.

Kod:

 Sub String_To_Array () Dim StringValue As String StringValue = "Bangalore adalah ibu kota Karnataka" Dim SingleValue () As String SingleValue = Split (StringValue, "") MsgBox SingleValue (0) & vbNewLine & SingleValue (1) & vbNewLine & SingleValue (2) & vbNewLine & SingleValue (3) & _vbNewLine & SingleValue (4) & vbNewLine & SingleValue (5) & vbNewLine & SingleValue (6) End Sub 

Sekarang jalankan kod dan lihat apa yang kita dapat di kotak mesej.

Setiap perkataan telah dibahagikan kepada susunan.

Contoh # 2

Sekarang bayangkan situasi menyimpan nilai-nilai ini ke sel iaitu setiap perkataan menjadi sel yang berasingan. Untuk ini, kita perlu memasukkan gelung FOR NEXT dalam VBA.

Kod di bawah akan memasukkan setiap perkataan ke dalam sel yang berasingan.

 Sub String_To_Array1 () Dim StringValue As String StringValue = "Bangalore adalah ibu kota Karnataka" Dim SingleValue () Sebagai String SingleValue = Split (StringValue, "") Dim k Sebagai Integer Untuk k = 1 hingga 7 Sel (1, k) .Value = Nilai Tunggal (k - 1) Sub Akhir Akhir seterusnya 

Ini akan memasukkan setiap perkataan seperti yang ditunjukkan pada gambar di bawah.

Perkara yang Perlu Diingat

  • Array dan gelung digunakan bersama untuk menjadikan kod dinamik.
  • Fungsi SPLIT memerlukan pembatas umum yang memisahkan setiap perkataan dalam ayat.
  • Panjang array bermula dari sifar, bukan dari 1.