簡體   English   中英

遍歷Instr Excel VBA

[英]Looping Through Instr Excel VBA

我正在嘗試將sheet1上的名稱與sheet2匹配,但是下面的代碼不起作用。 我要做的就是如果sheet1上的名稱至少包含sheet2上名稱的一部分,則匹配(用藍色塗)。 舉例來說;

工作表1:John Livingtone

工作表2:約翰·利文(John Living)

Sub inst()

    Dim nameone As Variant
    Dim cel As Variant
    Dim nametwo As Variant
    Dim cem As Variant

    nameone = Sheets("Sheet1").Range("L1:L1600")
    nametwo = Sheets("sheet2").Range("M1:M1600")

    For Each cem In nameone

        For Each cel In nametwo

            If InStr(cem.Value, "cel.Value") > 0 Then
                cem.Value = RGB(0, 0, 255)
            End If

        Next cel

    Next cem

如果將變量設置為范圍並實際計算行數,而不是對行數進行硬編碼,則代碼也將更快地工作。

您的問題表明sheet2具有部分字符串,但是您的代碼卻顯示了相反的字符串。 我根據您提供的代碼運行了循環。

Sub inst()

    Dim nameone As Range
    Dim cel As Range
    Dim nametwo As Range
    Dim cem As Range
    Dim sh1 As Worksheet, sh2 As Worksheet
    Dim L1 As Long, L2 As Long

    Set sh1 = Sheets("Sheet1")
    Set sh2 = Sheets("Sheet2")

    With sh1
        L1 = .Cells(.Rows.Count, "L").End(xlUp).Row
        Set nameone = .Range("L1:L" & L1)
    End With

    With sh2
        L2 = .Cells(.Rows.Count, "M").End(xlUp).Row
        Set nametwo = .Range("M1:M" & L2)
    End With



    For Each cem In nameone.Cells
        For Each cel In nametwo.Cells

            If InStr(cem.Value, cel.Value) <> 0 Then
                cem.Font.Color = RGB(0, 0, 255)
            End If

        Next cel

    Next cem
End Sub

如果您希望單元格為藍色而不是字體,請更改內部顏色

 cem.Interior.Color = RGB(0, 0, 255)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM