Excel无法识别粘贴的Word文档的格式

时间:2014-11-19 18:30:56

标签: excel excel-vba copy format paste vba

我正在尝试使用Excel重新映射Word文档中的某些文本,以生成为在线教育工具格式化的文件。
Word中的文本是一系列多项选择题和答案。 Word文件中的正确答案字母格式为粗体和下划线。粘贴到Excel后,我想将正确的(粗体,带下划线)字母更改为“正确”一词 我希望通过答案信件,测试他们是否大胆,并用“正确”一词取代Bold条目。

Excel VBA没有看到正确答案为Bold。 (我暂时不允许粘贴图片,所以我将描述我所看到的内容:)

  • 单元格B17格式为粗体和下划线。菜单栏上突出显示的按钮也表示粗体和下划线。
  • 如果单击“字体”菜单,我会看到格式基本上为空。没有选择Regular,Bold,Italic,Bold Italic。

我无法弄清楚如何让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

1 个答案:

答案 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