Mencari nilai Left

  1. 7 bulan yang lalu

    om @Caton bisa dibantu

    saya punya data seperti ini:
    S_TAB136MD1_CEMPAKATABANANDMTMD3
    NP_TAB136MD1_CEMPAKATABANANDMTMD3
    TAB136MD1_CEMPAKATABANANDMTMD3

    kalo saya cari pake code berikut, data pertama dan kedua saya dapat tapi data ketiga melenceng dengan apa yang saya mau.
    yang saya cari adalah nilai "TAB136"

    .Cells(lRow, 2) = Mid(.Cells(lRow, 3), InStr(1, .Cells(lRow, 3), "_") + 1, 6)


    mohon bantuannya om.

    @Lexs194 ...

    ... saya kena error, oiya sekalian tanya yang saya lingkari merah knp ada "_" di fungsi mid ya om ...

    -image-

    Maaf, tadi karena saya lagi buru-buru karena ada pekerjaan di luar, jadi lupa menghapus notasi "_" hasil copas dari baris di atasnya. Notasi tersebut seharusnya dihapus saja dari kedua baris terakhir:

    ...
    lX = InStr(1, .Cells(lRow, 3), "_")
    If lX Then
        If InStr(lX + 1, .Cells(lRow, 3), "_") Then
            '+-- Pola: *_{TARGET}_*
            .Cells(lRow, 2) = Mid$(.Cells(lRow, 3), lX + 1, 6)
        Else
            '+-- Pola: {TARGET}_*
            .Cells(lRow, 2) = Mid$(.Cells(lRow, 3), 1, 6)
        End If
    End If
    ...

    Demikian.

  2. Caton

    29 Apr 2018 Terverifikasi Indonesia + 12.569 Poin

    @Lexs194 ...

    Kalau nilai yang dicari sifatnya tetap, misalkan TAB136, khan bisa langsung diuji saja nilai tersebut, misalkan:

    ...
    If InStr(1, .Cells(lRow, 3), "TAB136") Then
        .Cells(lRow, 2) = Mid(.Cells(lRow, 3), InStr(1, .Cells(lRow, 3), "TAB136"), 6)
    End If
    ...

    Namun jika nilai yang dicari tidak tetap (berubah-ubah), maka coba dipelajari dahulu pola dari teks sumber. Misalkan saja, dari ketiga contoh di atas polanya ± dapat berupa {TARGET}_* atau *_{TARGET}_*. Kira-kira, bentuk scriptnya adalah:

    ...
    lX = InStr(1, .Cells(lRow, 3), "_")
    If lX Then
        If InStr(lX + 1, .Cells(lRow, 3), "_") Then
            '+-- Pola: *_{TARGET}_*
            ExtractTextC = Mid$(.Cells(lRow, 3), "_", lX + 1, 6)
        Else
            '+-- Pola: {TARGET}_*
            ExtractTextC = Mid$(.Cells(lRow, 3), "_", 1, 6)
        End If
    End If
    ...

    Demikian.

  3. om @Caton
    saya kena error, oiya sekalian tanya yang saya lingkari merah knp ada "_" di fungsi mid ya om?

  4. kalo saya hilangkan "_" didalam fungsi mid mau jalan codenya om

  5. Caton

    29 Apr 2018 Terverifikasi Jawaban Terpilih Indonesia + 12.569 Poin

    @Lexs194 ...

    ... saya kena error, oiya sekalian tanya yang saya lingkari merah knp ada "_" di fungsi mid ya om ...

    -image-

    Maaf, tadi karena saya lagi buru-buru karena ada pekerjaan di luar, jadi lupa menghapus notasi "_" hasil copas dari baris di atasnya. Notasi tersebut seharusnya dihapus saja dari kedua baris terakhir:

    ...
    lX = InStr(1, .Cells(lRow, 3), "_")
    If lX Then
        If InStr(lX + 1, .Cells(lRow, 3), "_") Then
            '+-- Pola: *_{TARGET}_*
            .Cells(lRow, 2) = Mid$(.Cells(lRow, 3), lX + 1, 6)
        Else
            '+-- Pola: {TARGET}_*
            .Cells(lRow, 2) = Mid$(.Cells(lRow, 3), 1, 6)
        End If
    End If
    ...

    Demikian.

  6. siap om @Caton
    terima kasih bnyak bantuannya om :D

 

atau Mendaftar untuk ikut berdiskusi!