簡體   English   中英

搜索文本字符串以查找匹配項並更改字體顏色

[英]Search text string for a match and change font color

自從我使用Excel已有6年了,我有點生銹。 這是我的情況:

我正在將問題列表導出到Excel。 我需要能夠區分一個單元格(多個值)中的關聯鏈接號。 例如,我有兩列,

鑰匙=機票號碼

鏈接的問題=關聯的密鑰

我需要一條可以掃描“關鍵”列並在“鏈接的問題”列中找到匹配項的語句。 然后,一旦找到匹配項,則匹配的文本將采用Key的字體顏色。

使問題變得復雜的地方是“鏈接的問題”列中的每個單元格看起來像是iss-3913,iss-3923,iss-1649。 因此,實質上,掃描將是針對字符串中的匹配項。 任何幫助表示贊賞。

抱歉,我現在沒有時間完成此操作,但是 這樣的事情會有所幫助嗎 第一列中的每個單元格可能都有一個循環

編輯 :現在完成,第二次編輯以更新為B5和Z5,使用列引用編輯3個固定對象,並更新為使用變量分配要查找的列。

Sub colortext()
start_row = 5
key_col = 2
linked_col = 26
i = start_row 'start on row one
Do While Not IsEmpty(Cells(i, key_col)) 'Do until empty cell
    o = start_row 'start with row one for second column
    Do While Not IsEmpty(Cells(o, linked_col)) 'Do until empty cell
    If Not InStr(1, Cells(o, linked_col), Cells(i, key_col)) = 0 Then  'if cell contents found in cell
        With Cells(o, linked_col).Characters(Start:=InStr(1, Cells(o, linked_col), Cells(i, key_col)), Length:=Len(Cells(i, key_col))).Font
            .Color = Cells(i, key_col).Font.Color  'change color of this part of the cell
        End With
    End If
    o = o + 1 'increment the cell in second column
    Loop
    i = i + 1 'increment the cell in the first column
Loop
End Sub

或者可能

像這樣嗎

Excel VBA:更改單元格區域中特定字符的字體顏色

這是一篇舊文章,但是我想我將圍繞我遇到的條件格式問題提供我的工作。

Sub colorkey()
start_row = 5
key_col = 2
flag_col = 4

i = start_row 'start on row one

  Do While Not IsEmpty(Cells(i, key_col)) 'Do until empty cell

  Tval = Cells(i, flag_col).Value
    Select Case Tval
    Case "Requirement"
        'cval = green
        cVal = 10
    Case "New Feature"
        'cval = orange
        cVal = 46
    Case "Test"
        'cval = lt blue
        cVal = 28
    Case "Epic"
        'cval = maroon
        cVal = 30
    Case "Story"
        'cval = dk blue
        cVal = 49
    Case "Theme"
        'cval = grey
        cVal = 48
    Case "Bug"
        'cval = red
        cVal = 3
    Case "NOT MAPPED"
        'cval = Maroon
        cVal = 1
    End Select


Cells(i, key_col).Font.ColorIndex = cVal

    i = i + 1 'increment the cell in the first column
    Loop

End Sub
Sub colorlinked()
start_row = 5
key_col = 2
linked_col = 26
i = start_row 'start on row one
Do While Not IsEmpty(Cells(i, key_col)) 'Do until empty cell
    o = start_row 'start with row one for second column
    Do While Not IsEmpty(Cells(o, linked_col)) 'Do until empty cell
    If Not InStr(1, Cells(o, linked_col), Cells(i, key_col)) = 0 Then  'if cell contents found in cell
        With Cells(o, linked_col).Characters(Start:=InStr(1, Cells(o, linked_col), Cells(i, key_col)), Length:=Len(Cells(i, key_col))).Font
            .Color = Cells(i, key_col).Font.Color  'change color of this part of the cell
        End With
    End If
    o = o + 1 'increment the cell in second column
    Loop
    i = i + 1 'increment the cell in the first column
Loop
MsgBox "Finished Scanning"
End Sub

暫無
暫無

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

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