У меня есть следующая функция, которая анализирует некоторые листы форматирования и возвращает индекс цвета:
Function returnFontColor(targetString As String) As Integer
Dim formatSheet As Worksheet
Dim lastRow As Long
Dim row As Long
Dim counter As Integer
returnFontColor = 0
Set formatSheet = ThisWorkbook.Worksheets("Formatting")
With formatSheet
lastRow = .Cells(.Rows.Count, 2).End(xlUp).row
For row = 2 To lastRow
If LCase(CStr(.Range("B" & row).Value)) = LCase(CStr(targetString)) Then
For counter = 1 To Len(.Range("C" & row).Value)
If .Range("C" & row).Characters(Start:=counter, Length:=1).Font.ColorIndex <> 0 Then
returnFontColor = .Range("C" & row).Characters(Start:=counter, Length:=1).Font.ColorIndex
GoTo Exiter
End If
Next
End If
Next
End With
Exiter:
End Function
Как я использую функцию:
ws.Cells(row_num, col_num).Font.ColorIndex = returnFontColor(name)
Моя проблема в том, что цвет Iполучить от вызова этой функции значительно отличается от того, что на листе форматирования, и я не понимаю, почему, потому что это должно опираться на RGB, который очень специфичен.Что-то мне не хватает?