2013-08-01 67 views
1

自從我與Excel合作已經6年了,我有點生疏了。這是我的場景:搜索文本字符串進行匹配並更改字體顏色

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

重點=

相互關聯的問題一票數量=相關

的鑰匙,我需要將掃描鍵列,並找到在相互關聯的問題匹配的聲明柱。然後,一旦找到匹配,匹配的文本將採用密鑰的字體顏色。

如果這變得複雜,鏈接問題列的每個單元格可能看起來像這樣iss-3913,iss-3923,iss-1649。所以基本上掃描將在字符串內進行匹配。任何幫助表示讚賞。

+0

您是否正在尋找一個包含多種字體顏色的單元格?另外,請告訴我:第一列是否有「iss-3913」,第二列是否有「3923,1649,8352」例如?還是第二欄也有「iss-3923,iss-1649,iss-8352」? – Wally

+0

因此,單元格「A1」包含單個值iss-3715並且顏色爲紅色(列A中的所有值都是唯一的)。 Z列中的多個單元格在鏈接的問題串中包含iss-3715,例如。 iss-2190,iss-2222,iss-3715,iss-9000。我希望能夠匹配字符串的部分來繼承A列中匹配的字體顏色。 – user2642587

回答

1

我很抱歉,我沒有時間,現在完成這一權利,但瓦特會像這樣幫助有可能在第一列每一個小區的循環?

編輯:現在已經完成,第二個編輯更新到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: change font color for specific char in a cell range

+1

太棒了。這就是我正在尋找的!如果我的鍵(row1/cell1)從第2行/ cell5(B5)開始,並且我的鏈接問題在第26行(Z $)中,我可以操作哪些字段? – user2642587

+0

@ user2642587我更新了代碼。我是開始的「關鍵」行。 o是開始的「鏈接問題」行。無論你看到Cells(i,2),這兩個代表「key」的列。無論你看到單元格(o,26),26代表「鏈接問題」的列。祝你好運。 – MakeCents

+0

實際上,這並不會改變第26列中的任何內容。 – user2642587

1

這是一個老的文章,但我想我會提供圍繞我的工作我在有條件的格式化問題。

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