VBA проверьте, если частичный жирный шрифт в ячейке
я генерирую XML из списка текста на листе, но я не могу понять, как проверить, есть ли в текущей ячейке жирное слово. Что мне нужно сделать, это проверить каждую ячейку в столбце A, прочитать текст в строку, если я нажму какие-либо жирные слова, добавьте теги вокруг него.
Я знаю, что вы можете читать содержимое ячеек символ за символом, но не его форматирование.
любая помощь была бы очень признательна!
1 ответов
вот способ, который вы можете использовать, чтобы проверить, если ячейка имеет
- смешанные символы, которые выделены жирным шрифтом. В этом случае он вернется
NULL
- все символы выделены жирным шрифтом. В этом случае он вернется
TRUE
- ни один из символов не выделен жирным шрифтом. В этом случае он вернется
FALSE
пример
Sub Sample()
Debug.Print Range("A1").Font.Bold
Debug.Print Range("A2").Font.Bold
Debug.Print Range("A3").Font.Bold
End Sub
чтобы проверить, имеет ли ячейка любой жирный символ вы также можете использовать эту функцию (либо из VBA или рабочего листа)
'~~> This is an additional function which will return...
'~~> TRUE if Cell has mixed/all chars as bold
'~~> FALSE if cell doesn't have any character in bold.
'~~> This can also be used as a worksheet function.
Function FindBoldCharacters(ByVal aCell As Range) As Boolean
FindBoldCharacters = IsNull(aCell.Font.Bold)
If Not FindBoldCharacters Then FindBoldCharacters = aCell.Font.Bold
End Function
скриншоты
и вы можете использовать .Characters().Font.FontStyle
чтобы проверить, является ли каждый символ полужирным или нет. Используйте вышеуказанный диапазон A1
пример.
Sub Sample()
For i = 1 To Len(Range("A1").Value)
Debug.Print Range("A1").Characters(i, 1).Font.FontStyle
Next i
End Sub
Screeenshot
модифицированных Код
Sub Sample()
For i = 1 To Len(Range("A1").Value)
If Range("A1").Characters(i, 1).Font.FontStyle = "Bold" Then
Debug.Print "The " & i & " character is in bold."
End If
Next i
End Sub
скриншоты