【问题标题】:Excel does not recognize formats of pasted Word documentsExcel 无法识别粘贴的 Word 文档的格式
【发布时间】:2014-11-19 18:30:55
【问题描述】:

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

Excel VBA 不会将正确答案视为粗体。 (我还不能粘贴图片,所以我将描述我所看到的:)

  • 单元格 B17 的格式为粗体和下划线。菜单栏上突出显示的按钮也表示粗体和下划线。
  • 如果我点击字体菜单,我看到格式基本上是空的。没有选择常规、粗体、斜体、粗斜体。

我无法弄清楚如何让 VBA 将单元格 B17 中包含的字体识别为粗体。其他单元格 B13、B15、B19 和 B21 显示为常规字体。只有单元格 B17 似乎有问题,即使在视觉上它似乎是粗体和下划线。我尝试让代码将字体识别为“不规则”,但它也无法识别。字体信息似乎为空或不存在。我不确定如何继续这一点。
这似乎是 Excel 复制/粘贴或 Excel 存储字体信息的方式中的错误。似乎菜单栏有正确的信息,但字体菜单没有。无论哪种方式,VBA 都无法访问该信息。
同样,我的代码试图在单元格中插入“正确”一词,并使用粗体字体。

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

【问题讨论】:

    标签: excel copy format paste vba


    【解决方案1】:

    可能显示为粗体的单元格实际上具有混合字体格式(例如,文本末尾可能有一个未格式化为粗体的空格)。

    您可能需要查看 Characters 集合并测试每个集合的粗体

    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
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-10-09
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多