Fungsi Manipulasi String VBA & Operatorso
โก Ringkasan Cerdas
Fungsi Manipulasi String VBA dan Operators menggabungkan, mengukur, dan extracHalaman ini menjelaskan operator penggabungan (concatenation), fungsi Left, Right, Mid, Len, dan InStr, pemisahan dan penggabungan, serta kesalahan yang paling sering menyebabkan kode string gagal.

Rangkaian VBA Operatorso
Data string digunakan untuk menampung data yang terdiri dari angka, karakter, dan simbol. โJul-2015โ adalah contoh data string. Itu terbuat dari
- Karakter (Juli)
- Simbol (-)
- Numbers (2015)
Operator string digunakan untuk memanipulasi data string. Misalnya, Anda dapat menggabungkan nilai Juli-2015 dari 3 huruf pertama bulan dan tahun seperti โJul-2015โ.
Tabel berikut menunjukkan operator penggabungan string VBA.
| S / N | Operator | Deskripsi | Example | Keluaran |
|---|---|---|---|---|
| 1 | & | Concatenate: Operator ini digunakan untuk menggabungkan string menjadi satu | โJohnโ & โDoeโ | Nama sembarang orang |
Sumber Contoh Code
MsgBox "John " & "Doe", vbOKOnly, "Concatenate Operator"
Menjalankan kode di atas menghasilkan hasil berikut
Tanda ampersand bukanlah satu-satunya simbol yang tampaknya menghubungkan teks, dan perbedaan antara keduanya menjadi penting ketika angka terlibat.
Perbedaan Antara & dan + untuk Penggabungan String
VBA menerima baik tanda ampersand (&) maupun tanda plus (+) di antara dua nilai teks, sehingga pemula sering menganggapnya dapat saling menggantikan. Keduanya berperilaku berbeda begitu salah satu operand berupa angka atau nilai kosong, dan hanya salah satunya yang aman.
| Perilaku | & (Ampersand) | + (Ditambah) |
|---|---|---|
| Dua nilai teks | Bergabung dengan mereka: โGuruโ & โ99โ kembali Guru99 | Bergabung dengan mereka: โGuruโ + โ99โ kembali Guru99 |
| Teks dan angka | Mengubah angka menjadi teks: โUsia โ & 30 akan menghasilkan Usia 30 | Menimbulkan kesalahan ketidakcocokan tipe data. |
| Dua rangkaian angka | โ10โ & โ5โ menghasilkan 105 | โ10โ + โ5โ mungkin jika dijumlahkan hasilnya 15 |
| Nilai Null | Memperlakukan Null sebagai string kosong | Mengembalikan nilai Null dan mengabaikan seluruh hasil. |
๐ก Kiat: Selalu gunakan tanda ampersand (&) untuk penggabungan dan simpan tanda plus (+) untuk operasi aritmatika. Beri spasi sebelum dan sesudah tanda ampersand (&), karena penulisan Total& akan dibaca oleh VBA sebagai karakter deklarasi tipe Long.
Fungsi Manipulasi String VBA
Manipulasi String VBA adalah elemen penting dalam Excel VBA untuk pemrograman Makro dan operasi string. Excel menyediakan berbagai jenis fungsi Manipulasi String VBA seperti:
- kiri: digunakan untuk extract karakter dari sisi kiri string
- Kanan: digunakan untuk extrackarakter t dari sisi kanan string
- Menengah: digunakan untuk extracsubstring dari tengah string
- Len: digunakan untuk mencari panjang suatu string
- DalamStr: digunakan untuk mencari posisi substring dalam sebuah string
- MemangkasTanda : digunakan untuk menghapus spasi dari kedua ujung string.
- menggantikanTanda : digunakan untuk menukar setiap kemunculan satu substring dengan substring lainnya.
- UCase / LCaseTanda titik dua (:) digunakan untuk mengubah string menjadi huruf besar atau huruf kecil.
Tabel di bawah ini menunjukkan sintaks setiap fungsi beserta contohnya, sehingga Anda dapat langsung menyalin polanya ke dalam makro.
| fungsi | Sintaksis | Example | Keluaran |
|---|---|---|---|
| kiri | Kiri(string, panjang) | Kiri (โJuli-2015โ, 3) | Juli |
| Kanan | Kanan(string, panjang) | Kanan (โJuli-2015โ, 4) | 2015 |
| Menengah | Tengah(string, awal, panjang) | Pertengahan (โJuli-2015โ, 5, 4) | 2015 |
| Len | Len(string) | Len (โJuli 2015โ) | 8 |
| DalamStr | InStr(awal, string, substring) | InStr(1, โJuli-2015โ, โ-โ) | 4 |
| Memangkas | Potong (tali) | Memangkas(" Guru99 โ) | Guru99 |
| menggantikan | Ganti(string, cari, ganti) | Ganti(โJuli-2015โ, โ-โ, โ/โ) | Juli/2015 |
| UCase | UCase(string) | UCase(โguru99โ) | GURU99 |
Makro di bawah ini menggabungkan beberapa fungsi tersebut untuk membangun kembali label tanggal dari bagian-bagiannya.
Sub StringFunctionsDemo() Dim Source As String Dim MonthPart As String Dim YearPart As String Source = "July-2015" ' Take the first three characters MonthPart = Left(Source, 3) ' Take the last four characters YearPart = Right(Source, 4) MsgBox MonthPart & "-" & YearPart, vbOKOnly, "String Functions" End Sub
Menjalankan makro akan menampilkan Jul-2015. Setiap fungsi mengembalikan nilai baru dan membiarkan string asli tidak berubah, itulah sebabnya hasilnya dapat digabungkan dengan aman dalam satu ekspresi.
Semua fungsi ini hanya bekerja pada satu string dalam satu waktu. Ketika satu nilai berisi seluruh daftar, dua fungsi lain menanganinya dengan lebih baik.
Cara Memisahkan dan Menggabungkan String di VBA
Data yang disalin ke Excel sering kali berupa satu nilai panjang dengan pemisah di antara setiap item, seperti โPepsi,Coke,Fanta,Juiceโ. Membacanya dengan Mid dan InStr lambat dan tidak stabil. VBA menyediakan sepasang fungsi yang cocok untuk pekerjaan ini.
Split Fungsi ini menerima string yang dipisahkan oleh pembatas dan mengembalikan array berbasis nol, dengan satu elemen per item. Ikuti seminar Fungsi ini melakukan kebalikannya, mengambil sebuah array dan mengembalikan sebuah string tunggal dengan pemisah di antara elemen-elemennya. Perhatikan bahwa fungsi Join bekerja pada sebuah array, bukan pada dua string terpisah.
Sub SplitAndJoinDemo() Dim Source As String Dim Items() As String Dim i As Long Source = "Pepsi,Coke,Fanta,Juice" ' Break the value into an array on every comma Items = Split(Source, ",") For i = LBound(Items) To UBound(Items) Sheet1.Cells(i + 1, 1).Value = Items(i) Next i ' Rebuild the list with a different separator MsgBox Join(Items, " | "), vbOKOnly, "Joined List" End Sub
Perulangan tersebut menulis setiap minuman ke dalam baris lembar kerja masing-masing, dan kotak pesan kemudian menampilkan Pepsi | Coke | Fanta | Jus. Tiga poin membuat pola ini dapat diandalkan dalam kode produksi:
- Hasil berbasis nol: Fungsi Split selalu mengembalikan array yang diberi nomor mulai dari 0, apa pun nilai Option Base yang ditetapkan, jadi jalankan loop dengan LBound dan UBound, bukan dengan angka tetap.
- Deklarasikan sebagai String(): Tetapkan hasilnya ke dalam array String dinamis. Mendeklarasikan ukuran tetap terlebih dahulu akan menyebabkan kesalahan kompilasi.
- Input kosong: Memisahkan string kosong akan menghasilkan array tanpa elemen, jadi ujilah dengan UBound sebelum membaca Items(0).
Bahkan dengan fungsi yang tepat yang dipilih, kode string akan gagal dalam sejumlah kecil cara yang dapat diprediksi.
Kesalahan Umum pada String VBA dan Cara Memperbaikinya
Sebagian besar kesalahan string dalam Excel VBA berasal dari beberapa penyebab yang singkat. Mengenali gejalanya akan menghemat waktu debugging yang panjang.
- Ketidaksesuaian tipe pada penggabungan: Tanda plus (+) digunakan di antara teks dan angka. Ganti dengan tanda ampersand (&), yang akan mengubah angka secara otomatis.
- InStr mengembalikan 0: Substring tidak ditemukan. InStr mengembalikan 0, bukan -1, jika gagal, jadi uji nilai yang lebih besar dari nol sebelum meneruskan hasilnya ke Mid.
- Panggilan prosedur tidak valid di Tengah atau Kiri: Panjang yang diminta bernilai negatif, atau posisi awal berada di bawah 1. Lindungi panggilan dengan Len agar panjangnya tidak pernah melebihi string.
- Perbandingan yang seharusnya cocok tetapi tidak cocok: Spasi tambahan dari data yang diimpor akan merusak kesamaan. Bungkus kedua sisi dengan Trim, dan gunakan StrComp jika perbedaan huruf besar dan kecil harus diabaikan.
- Teks yang tidak akan menjadi angka: Nilai seperti โ1,200โ gagal dalam perhitungan aritmatika karena adanya pemisah. Hilangkan pemisah tersebut dengan fungsi Replace sebelum mengonversinya dengan CLng.
Unduh Excel yang berisi kode di atas
Unduh file Excel di atas. Code


