В настоящее время у меня есть рабочий лист, который смотрит в столбец B и соответствует строке со строкой в столбце Z, а затем меняет цвет соответствующей строки на font.color в столбце B . Проблема состоит в том, что столбец B окрашен условным форматированием, поэтому код не распознается. Мне нужно иметь фактическое изменение цвета шрифта в столбце B, когда условие является истинным. Кроме того, код должен увеличиваться до тех пор, пока не будет достигнут последний ряд листа.Изменить фактический цвет шрифта на основе другого значения ячейки в строке
Вот текущие условные форматы У меня есть установка
Blockquote
=ISNUMBER(SEARCH("Story",Template!D5))=TRUE 'format dark blue
=ISNUMBER(SEARCH("Requirement",Template!D5))=TRUE 'format green
=ISNUMBER(SEARCH("EPIC",Template!D5))=TRUE 'format red
=ISNUMBER(SEARCH("Test",Template!D5))=TRUE 'format teal
=ISNUMBER(SEARCH("New Feature",Template!D5))=TRUE 'format orange
=ISNUMBER(SEARCH("Theme",Template!D5))=TRUE 'format gray
BLOCKQUOTE
Sub Main()
Call NoLinks
Call SetCellWarning
Call colortext
End Sub
Sub NoLinks()
ActiveSheet.Hyperlinks.Delete
End Sub
Sub SetCellWarning()
Dim iLastRow As Long
Dim cel As Range, rSetColumn As Range
iLastRow = ActiveSheet.Cells(Rows.Count, 1).End(xlUp).row
Set rSetColumn = Range(Cells(5, 26), Cells(iLastRow, 26)) ' Column "Z"...
For Each cel In rSetColumn
If cel.Value = "" Then
With cel
cel.Value = "NOT MAPPED"
End With
End If
Next cel
End Sub
***'The colortext runs but does not update unless the font color is manually updated***
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
Blockquote
Это немного сбивает с толку. Почему у вас есть условное форматирование в столбце B, если вы хотите контролировать цвет? Или вы хотите «отключить условное форматирование на определенных ячейках, если выполняются определенные условия»? Не могли бы вы прояснить? – Floris
Это был урок, который усвоил трудный путь. Мне нужно избавиться от условного форматирования для столбца B и иметь VBA для изменения фактических цветов на основе тех же условий. Например, если D5 = требование, то цвет шрифта B5 = зеленый, если D5 = EPIC, тогда цвет шрифта B5 = красный, D5 = история, затем B5 синий. Как только код запускается для B5, мне нужно сделать то же самое для остальных строк. Условное форматирование делает это, но на самом деле не меняет цвет шрифта. – user2642587
Вы уверены, что ссылаетесь на нужный номер цвета в своем заявлении? –