У меня есть шрифт для отображения определенных символов. Они печатаются на листе со стандартным шрифтом по умолчанию. Я могу идентифицировать эти символы, а затем изменить шрифт этих символов на свой символ, но с некоторыми проблемами заставить его работать правильно, когда в ячейке содержится более одного идентифицированного символа.Изменить шрифт нескольких подстрок в ячейке Excel
Например, и клетки могут содержать:
Это значение Х и Y, и Z
мне нужно изменить шрифт только из X, Y и Z.
Вот как я в настоящее время меняется шрифт символы с помощью VBA:
Sub InsertFont(insertRange As Range, symbolText As String, symbolPosition As Integer)
Dim cellText As String
Dim newValue As String
cellText = insertRange.Value2
newValue = Replace(cellText, symbolText, SymbolDict.Item(symbolText), 1, 1)
insertRange.Value2 = newValue
With insertRange.Characters(symbolPosition, Len(SymbolDict.Item(symbolText))).Font
.Name = "MyFont"
End With
End Sub
пР oblem после каждого изменения шрифта, остальная часть ячейки возвращается к шрифту по умолчанию! Как я могу получить изменения шрифта для всех изменений?
конечный результат:
Это значение X и Y, а ☹
Что в 'SymbolDict'? – Comintern
После того, как вы создали «смешанное» форматирование в ячейке, вам необходимо внести все изменения в содержимое ячейки с помощью методов «Символы» (Insert/Delete). Как вы видите, если вы используете 'Value', то любое форматирование каждого символа получает сброс –
@Comintern Ключ - это текст, который я заменяю, а item - это новое значение для его замены. – GisMofx