Cara menyorot teks / kata duplikat di sel Excel

  • Bagikan Ini
Michael Brown

Tutorial ini menunjukkan cara menyorot duplikat kata atau string teks dalam sel menggunakan VBA.

Pemformatan Bersyarat Excel memungkinkan untuk menyorot duplikat dalam setiap cara yang mungkin dapat Anda pikirkan: dengan atau tanpa kemunculan pertama, dalam satu kolom atau beberapa kolom, sel duplikat berturut-turut, dan seluruh baris berdasarkan nilai yang identik di kolom kunci. Tapi, seperti biasa, ada "tapi". Aturan pemformatan bersyarat bekerja pada level sel sementara Anda mungkin ingin menyorot duplikatIni hanya bisa dilakukan dengan makro. Bahkan jika Anda tidak memiliki pengalaman dengan VBA, jangan buru-buru menutup halaman ini. Di sini, Anda akan menemukan contoh kode yang siap digunakan dan instruksi terperinci tentang cara menggunakannya di lembar kerja Anda.

    Sorot kata duplikat dalam sel dengan mengabaikan kasus teks

    Contoh ini menunjukkan cara membuat bayangan duplikat kata atau string teks dalam sel dengan warna font merah seperti yang ditunjukkan pada gambar di bawah ini. Harap perhatikan bahwa huruf kecil dan huruf besar diperlakukan sebagai karakter yang sama. Misalnya, oranye , JERUK dan Oranye dianggap sebagai kata yang sama.

    Kode makro adalah sebagai berikut:

    Public Sub HighlightDupesCaseInsensitive() Dim Cell As Range Dim Delimiter As String Delimiter = InputBox( "Masukkan pembatas yang memisahkan nilai dalam sel" , "Pembatas" , ", " ) For Each Cell In Application.Selection Call HighlightDupeWordsInCell(Cell, Delimiter, False ) Next End Sub Sub HighlightDupeWordsInCell(Cell As Range, Optional Delimiter As String = " " , Optional CaseSensitive AsBoolean = True ) Dim text As String Dim words() As String Dim word As String Dim wordIndex, matchCount, positionInText As Integer If CaseSensitive Then words = Split(Cell.Value, Delimiter) Else words = Split(LCase(Cell.Value), Delimiter) End If For wordIndex = LBound (words) To UBound (words) - 1 word = words(wordIndex) matchCount = 0 For nextWordIndex = wordIndex + 1 To UBound (words) If word =words(nextWordIndex) Then matchCount = matchCount + 1 End If Next nextWordIndex If matchCount> 0 Then text = "" For Index = LBound (words) To UBound (words) text = text & words(Index) If (words(Index) = word) Then Cell.Characters(Len(text) - Len(word) + 1, Len(word)).Font.Color = vbRed End If text = text & Delimiter Next End If Next wordIndex End Sub

    Sorot teks duplikat dalam sel yang peka huruf besar-kecil

    Dalam kebanyakan situasi, kita cenderung mengabaikan huruf besar ketika bekerja dengan entri teks di Excel. Namun, dalam keadaan tertentu, huruf besar teks memang penting. Misalnya, jika Anda berurusan dengan ID, kata sandi, atau catatan lain semacam itu, string seperti 1-AA , 1-aa dan 1-Aa bukan duplikat dan tidak boleh disorot:

    Dalam hal ini, gunakan versi kode berikut ini:

    Public Sub HighlightDupesCaseSensitive() Dim Cell As Range Dim Delimiter As String Delimiter = InputBox( "Masukkan pembatas yang memisahkan nilai dalam sel" , "Pembatas" , ", " ) For Each Cell In Application.Selection Call HighlightDupeWordsInCell(Cell, Delimiter, True ) Next End Sub Sub HighlightDupeWordsInCell(Cell As Range, Optional Delimiter As String = " " , Optional CaseSensitive AsBoolean = True ) Dim text As String Dim words() As String Dim word As String Dim wordIndex, matchCount, positionInText As Integer If CaseSensitive Then words = Split(Cell.Value, Delimiter) Else words = Split(LCase(Cell.Value), Delimiter) End If For wordIndex = LBound (words) To UBound (words) - 1 word = words(wordIndex) matchCount = 0 For nextWordIndex = wordIndex + 1 To UBound (words) If word =words(nextWordIndex) Then matchCount = matchCount + 1 End If Next nextWordIndex If matchCount> 0 Then text = "" For Index = LBound (words) To UBound (words) text = text & words(Index) If (words(Index) = word) Then Cell.Characters(Len(text) - Len(word) + 1, Len(word)).Font.Color = vbRed End If text = text & Delimiter Next End If Next wordIndex End Sub

    Cara menggunakan makro untuk menyorot kata-kata duplikat di Excel

    Jika Anda seorang pemula dalam menggunakan VBA, petunjuk langkah-demi-langkah di bawah ini akan memandu Anda dengan nyaman. Pengguna yang berpengalaman dapat memilih tautan unduhan dan melewati sisanya :)

    Tambahkan kode ke buku kerja Anda

    Anda mulai dengan memasukkan kode makro di buku kerja Excel Anda. Begini caranya:

    1. Buka buku kerja tempat Anda ingin menyorot duplikat.
    2. Tekan Alt + F11 untuk membuka Visual Basic Editor.
    3. Pada panel kiri, klik kanan Buku Kerja ini dan pilih Sisipkan > Modul dari menu konteks.
    4. Tempel kode di jendela Code.
    5. Untuk menyimpan makro untuk penggunaan di masa mendatang, pastikan untuk menyimpan buku kerja Anda sebagai file .xlsm yang mendukung makro.

    Atau, Anda bisa mengunduh buku kerja contoh kami dan menjalankan makro dari sana. Buku kerja contoh berisi makro berikut ini:

    • SorotDupesCaseInsensitive - menaungi duplikat di dalam sel dengan mengabaikan huruf besar.
    • SorotDupesCaseSensitive - menyoroti duplikat dalam sel dengan mempertimbangkan kasus huruf.

    Untuk informasi lebih lanjut, silakan lihat Cara memasukkan kode VBA di Excel.

    Jalankan makro

    Dengan kode yang ditambahkan ke buku kerja Anda sendiri atau file sampel kami yang diunduh dan dibuka, jalankan makro dengan cara ini:

    1. Di lembar kerja Anda, pilih sel tempat Anda ingin menyorot teks duplikat. Ini bisa berupa satu rentang atau beberapa rentang yang tidak berdekatan.
    2. Tekan Alt + F8 .
    3. Pilih makro yang diinginkan dan klik Lari .

    4. Makro akan meminta Anda untuk menentukan pembatas yang memisahkan nilai dalam sel yang dipilih. Pembatas preset (koma dan spasi dalam kasus kami) akan muncul di kotak input secara otomatis. Tergantung pada kebutuhan Anda, Anda dapat membiarkan pembatas default atau mengetik yang berbeda, lalu klik OK.

    Sesaat kemudian, semua string duplikat dalam sel yang dipilih akan diarsir dengan warna merah (atau warna font apa pun yang diatur dalam kode Anda).

    Tip. hapus duplikat dalam sel, Anda dapat menggunakan Hapus Duplikat Substring, salah satu dari banyak alat penghemat waktu yang disertakan dalam Ultimate Suite kami.

    Cara menyesuaikan kode untuk kebutuhan Anda

    Dengan catatan penggunaan ini dan pengetahuan yang sangat mendasar tentang VBA (atau hanya mengikuti instruksi di bawah ini), Anda dapat dengan mudah memodifikasi kode sesuai dengan kebutuhan Anda.

    Tempatkan pada modul yang sama

    Seperti yang mungkin Anda perhatikan, kedua makro ( SorotDupesCaseSensitive dan SorotDupesCaseInsensitive ) memanggil SorotDupeKataDalamCell Perbedaan antara kedua makro di atas hanya pada parameter ke-3 (CaseSensitive) yang dilewatkan ke fungsi tersebut.

    Untuk pencarian case-sensitive, ditetapkan ke TRUE:

    Panggil SorotDupeWordsInCell(Sel, Pembatas, Benar)

    Untuk pencarian case-insensitive, ditetapkan ke FALSE:

    Panggil SorotDupeWordsInCell(Sel, Pembatas, Salah)

    Agar makro berfungsi, kode dari SorotDupeKataDalamCell harus ditempatkan pada modul yang sama dengan makro.

    Pembatas

    Saat dijalankan, makro akan meminta Anda untuk menentukan pembatas yang memisahkan kata / string dalam sel yang dipilih. Pembatas default adalah koma dan spasi (", ") dan sudah diatur sebelumnya di InputBox:

    Delimiter = InputBox("Tentukan pembatas yang memisahkan nilai dalam sel", "Delimiter", ", ")

    Dalam kode Anda, Anda bebas menggunakan karakter lain sebagai pembatas yang telah ditentukan sebelumnya.

    Warna

    Secara default, file SorotDupeKataDalamCell Fungsi ini menaungi duplikat dalam warna font merah. Warna didefinisikan di baris ini:

    Cell.Characters(positionInText, Len(word)).Font.Color = vbRed

    Di sini, vbRed adalah semacam konstanta warna VBA. Untuk menampilkan duplikat dalam warna yang berbeda, Anda dapat mengganti vbRed dengan konstanta lain seperti vbGreen, vbYellow, vbBlue, dll. T Daftar konstanta warna yang didukung bisa ditemukan di sini.

    Itulah cara menyorot kata duplikat di sel Excel. Saya berterima kasih telah membaca dan berharap dapat melihat Anda di blog kami minggu depan!

    Unduhan yang tersedia

    Contoh kode untuk menyorot duplikat dalam sel (file .xlsm)

    Ultimate Suite 14 hari versi yang berfungsi penuh (file .exe)

    Michael Brown adalah penggemar teknologi berdedikasi dengan hasrat untuk menyederhanakan proses kompleks menggunakan perangkat lunak. Dengan pengalaman lebih dari satu dekade di industri teknologi, dia telah mengasah keahliannya di Microsoft Excel dan Outlook, serta Google Spreadsheet dan Dokumen. Blog Michael didedikasikan untuk berbagi pengetahuan dan keahliannya dengan orang lain, memberikan tip dan tutorial yang mudah diikuti untuk meningkatkan produktivitas dan efisiensi. Apakah Anda seorang profesional berpengalaman atau pemula, blog Michael menawarkan wawasan berharga dan saran praktis untuk mendapatkan hasil maksimal dari perangkat lunak penting ini.