我正在尝试使用Excel重新映射Word文档中的某些文本,以生成为在线教育工具格式化的文件。
Word中的文本是一系列多项选择题和答案。 Word文件中的正确答案字母格式为粗体和下划线。粘贴到Excel后,我想将正确的(粗体,带下划线)字母更改为“正确”一词
我希望通过答案信件,测试他们是否大胆,并用“正确”一词取代Bold条目。
Excel VBA没有看到正确答案为Bold。 (我暂时不允许粘贴图片,所以我将描述我所看到的内容:)
我无法弄清楚如何让VBA将B17中包含的字体识别为Bold。其他单元格B13,B15,B19和B21显示为常规字体。只有细胞B17似乎有问题,即使在视觉上它似乎是粗体和下划线。我试着让代码将字体识别为“不规则”,但它也无法识别。似乎字体信息为空或不存在。我不知道如何处理这一点 它似乎是Excel复制/粘贴或Excel存储字体信息的方式中的错误。菜单栏似乎有正确的信息,但字体菜单没有。无论哪种方式,VBA都无法访问这些信息 同样,我的代码试图在Bold字体的单元格中插入单词“Correct”。
Sub IsBold()
START:
For jump = 1 To 5
'If ActiveCell.Font.Bold = True Then (I was trying this, when it didn’t work I tried the line below)
If ActiveCell.Font.FontStyle <> "Regular" Then (this didn’t work either)
ActiveCell.Value = "Correct"
End If
ActiveCell.Select
Selection.End(xlDown).Select
Next jump
Selection.End(xlDown).Select
GoTo START:
End Sub
答案 0 :(得分:0)
可能看起来粗体的单元格实际上具有混合字体格式(例如,可能在文本末尾有一个未格式化为粗体的空格)。
你可能需要查看Characters集合并测试每一个Bold
Sub TestForBold()
Dim i As Long
Debug.Print "Cell is Bold?", Selection.Font.Bold = True '>>Null if mixed
For i = 1 To Selection.Characters.Count
Debug.Print i, Selection.Characters(i, 1).Text, _
Selection.Characters(i, 1).Font.Bold = True
Next i
End Sub