VBA INSTRREV

INSTRREV VBA Excel

Fungsi VBA INSTRREV , seperti singkatan dari 'In String Reverse' , mengembalikan posisi kemunculan pertama dari string pencarian (substring) dalam string lain, dimulai dari ujung string (dari kanan ke kiri) dari mana kita mencari string yang dapat dicari.

Fungsi INSTRREV mulai mencari string yang dapat dicari dari akhir string di mana kita perlu mencari tahu tetapi menghitung posisinya dari awal. Ada satu lagi Fungsi INSTR vba (singkatan dari 'In String' ) yang juga mencari string di string lain dan mengembalikan posisi tetapi fungsi ini memulai pencarian dari awal string tempat kita mencari string yang dapat dicari.

INSTRREV dan INSTR , keduanya adalah fungsi String / Teks VBA bawaan dari MS Excel. Kami dapat menggunakannya saat menulis makro apa pun di Microsoft Visual Basic Editor.

Sintaksis

Seperti yang bisa kita lihat pada gambar di atas, ada 2 argumen wajib dan 2 argumen opsional.

  • StringCheck As String: Ini adalah argumen yang diperlukan. Kita perlu memberikan ekspresi string yang dicari.
  • StringMatch As String: Argumen ini juga diperlukan. Kita perlu menentukan ekspresi string yang dicari.
  • Start As Long = -1: Ini adalah argumen opsional. Kami menentukan ekspresi numerik. Secara default, dibutuhkan -1 yang berarti pencarian dimulai dari posisi karakter terakhir. Jika kita menentukan nilai positif seperti 80 maka itu mulai mencari dari akhir string di 80 karakter kiri tersebut.
  • Bandingkan Sebagai VbCompareMethod = vbBinaryCompare As Long: Argumen ini opsional.

Kita dapat menentukan nilai berikut untuk argumen ini.

Kembalikan Nilai

  1. Fungsi INSTRREV mengembalikan 0 jika pemeriksaan string  panjangnya nol atau kecocokan string  tidak ditemukan atau argumen 'mulai' > panjang string yang cocok .
  2. Fungsi ini mengembalikan 'Null' jika pemeriksaan string  atau pencocokan string  adalah 'Null' .
  3. Jika kecocokan string panjangnya nol, maka fungsi kembali ke awal .
  4. Jika kecocokan string ditemukan dalam pemeriksaan string , maka fungsi mengembalikan posisi di mana kecocokan ditemukan.

Bagaimana Cara Menggunakan Fungsi VBA INSTRREV?

Anda dapat mengunduh Template Excel VBA INSTRREV ini di sini - Template Excel VBA INSTRREV

Misalkan, kami memiliki data untuk nama film dan sutradaranya. Kami ingin membagi nama sutradara.

Kami memiliki data dalam 1201 baris. Jika kita melakukan tugas ini secara manual, itu akan memakan banyak waktu.

Untuk melakukan hal yang sama, kami akan menggunakan kode VBA. Langkah-langkahnya adalah:

  • Kita perlu mengklik Perintah 'Visual Basic' yang tersedia di Grup 'Kode' di Tab 'Pengembang' atau kita dapat menekan Alt + F11 untuk membuka editor visual basic.

  • Kami akan memasukkan modul menggunakan menu 'Sisipkan' .

  • Kami akan membuat subrutin bernama 'SplittingNames' .

  • Kami membutuhkan 6 variabel. Satu untuk menyimpan nilai sel, yang akan kita manipulasi. Kedua untuk menyimpan posisi spasi pertama dalam string, ketiga untuk menyimpan posisi spasi terakhir dalam string, keempat untuk menyimpan nomor baris terakhir, kelima dan keenam untuk baris dan kolom yang akan kita gunakan untuk mencetak nilai di sel yang berdekatan.

  • Untuk mengetahui baris yang terakhir digunakan dalam sheet, kita perlu menggunakan kode berikut.

Kode ini pertama-tama akan memilih sel B1 dan kemudian memilih sel yang terakhir digunakan di kolom yang sama dan kemudian kami menetapkan nomor baris sel ke variabel 'LastRow'.

  • Sekarang untuk memanipulasi semua sel di kolom B, kita akan menjalankan loop 'for' .

  • Kami akan menyimpan nilai sel kolom B dari baris 2 ke baris 1201 satu per satu dalam variabel 's' untuk memanipulasinya.

  • Kita perlu mengatur nilai variabel 'Kolom' menjadi 3 karena kita perlu menulis nama split di C (Kolom ke-3) dan kolom seterusnya.

  • Jika string hanya satu kata yang berarti tidak ada spasi dalam string maka kita ingin string itu sendiri sebagai output. Untuk ini, kami akan menentukan kondisi menggunakan 'If and Else statement' dengan tanda asterisk (menunjukkan satu atau lebih karakter) sebagai berikut:

  • Jika ada spasi dalam string maka kita ingin memisahkan string tersebut. Untuk melakukan hal yang sama kita telah menggunakan fungsi INSTR dan INSTRREV untuk mengetahui posisi ruang pertama dan posisi ruang terakhir masing-masing. Ini akan membantu kita menemukan kata pertama dan kata terakhir dalam string masing-masing.

Fungsi INSTR mengambil argumen seperti di bawah ini:

Detail Argumen

  • Mulai: Dari posisi mana untuk memulai.
  • String1: Kita perlu memberikan ekspresi string yang dicari.
  • String2: Kita perlu menentukan ekspresi string yang dicari.

Dibandingkan sebagai VbCompareMethod: Specifying Comparing method. Secara default, ini adalah perbandingan biner.

  • Kita perlu menggunakan VBA KIRI fungsi untuk mengekstrak karakter kiri dari string. Kami telah menggunakan 'Last Space-1' untuk mendapatkan karakter kiri sebelum spasi terakhir.

Kita perlu menggunakan fungsi RIGHT dan LEN untuk mengekstrak karakter yang tepat dari string setelah spasi pertama.

Makro ditulis. Sekarang kita hanya perlu menjalankan makro menggunakan tombol F5 .

Kode:

 Sub SplittingNames () Dim s As String Dim FirstSpace As Long Red LastSPace As Long Red LastRow As Long Dim Row As Long Dim Column As Long Sheet1.Range ("B1"). Pilih Selection.End (xlDown). Pilih LastRow = ActiveCell. Row For Row = 2 To LastRow s = Sheet1.Cells (Row, 2) .Value Column = 3 If s Like "* *" Then FirstSpace = InStr (1, s, "") LastSPace = InStrRev (s, "") Sheet1.Cells (Row, Column) .Value = Left (s, LastSPace - 1) Sheet1.Cells (Row, Column + 1) .Value = Right (s, Len (s) - FirstSpace) Else Sheet1.Cells (Row, Kolom) .Value = s Berakhir Jika Berikutnya Akhir Sub 

Kami punya hasil sekarang.