Vba检查是否在单元格中部分粗体

我从工作表中的文本列表生成XML,但我不知道如何检查当前单元格是否有一个粗体的单词。 我需要做的是检查列A中的每个单元格,将文本读入一个string,如果我点击任何粗体字添加 在它周围的标签。

我知道你可以按字符读取单元格内容,但不能格式化。

任何帮助将不胜感激!

这是一种可以用来检查单元格是否有效的方法

  1. 大胆的混合字符。 在这种情况下,它将返回NULL
  2. 所有字符都是粗体。 在这种情况下,它将返回TRUE
  3. 没有一个字符是粗体的。 在这种情况下,它将返回FALSE

在这里输入图像说明

 Sub Sample() Debug.Print Range("A1").Font.Bold Debug.Print Range("A2").Font.Bold Debug.Print Range("A3").Font.Bold End Sub 

在这里输入图像说明

要检查一个单元格是否有粗体字符,你也可以使用这个函数( 从VBA或Worksheet

 '~~> 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 

截图

在这里输入图像描述