我正在从工作表中的文本列表生成 XML,但我不知道如何检查当前单元格中是否有粗体字。我需要做的是检查 A 列中的每个单元格,将文本读入字符串,如果我点击任何粗体单词,请在其周围添加 标签。
我知道您可以逐字符读取单元格内容,但不能读取其格式。
任何帮助将不胜感激!
您可以使用以下方法来检查单元格是否有
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
检查每个字符是否为粗体。使用上面的 Range A1
示例。
Sub Sample()
For i = 1 To Len(Range("A1").Value)
Debug.Print Range("A1").Characters(i, 1).Font.FontStyle
Next i
End Sub
截图
修改代码
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
截图
使用 https://stackoverflow.com/users/1140579/siddharth-rout 帖子进行轻微修改。 (我本来会把它放在评论中,但字符太多)。
通过以下方式在您的子系统中调用它:
strTempText = isItBold(frBook.Worksheets(arraySys(x, 1)).Range("H" & y))
If strTempText <> "XXX" Then
Debug.Print strTempText
End If
还有功能。
Function isItBold(aCell As Range) As String
Dim i As Integer
Dim Sentence_Length As Integer
Dim checkText As String
Sentence_Length = Len(aCell)
checkText = ""
For i = 1 To Sentence_Length
If aCell.Characters(i, 1).Font.Bold = True Then
checkText = checkText & aCell.Characters(i, 1).text
End If
Next i
If Len(checkText) < 1 Then
isItBold = "XXX"
Else
isItBold = checkText
End If
End Function