Excel 宏:将字符范围设置为粗体会导致文本乱码

Excel 宏:将字符范围设置为粗体会导致文本乱码

我想要做的是:我有大约 1400 行数据,其中最后一列包含大量文本。下面是一张图片来说明我的意思:图片被删除了,因为我一次只能发布 2 个链接。

现在,为了使该文本更易于阅读,我想将其中的一些单词加粗。

现在我有以下宏:

Dim range As range
Set range = Application.Selection

Dim boldwords As Variant
boldwords = Array("Atemschutz:", "Körperschutz:", "Handschutz:", "Augenschutz:")


Dim cell As range
For Each cell In range
    For Each bword In boldwords
        foundword = InStr(1, cell.Text, bword, VbCompareMethod.vbTextCompare)
        If foundword <> 0 Then
            cell.Characters(foundword, Len(bworld)).Font.Bold = True
        End If
    Next
Next
  1. 循环遍历所有选定的单元格
  2. 循环遍历所有应该加粗的单词并检查它们是否包含在单元格中
  3. 如果是,则将其加粗

现在我的问题是,一旦我运行它,我的文本要么完全变成粗体,要么变成乱码像这样 ,或者将每个字母放在单独的行上。此后,Excel 要么变慢,要么冻结,有时甚至崩溃。

怎样才能防止这种情况发生?

更新:在更正了 Siphor 提到的变量名之后,文本不再乱码,但有时仍然会被分成单独的行,下面的图片显示了我的意思:点击我

答案1

我认为这是你的代码中的一个错误,Len(bworld)应该Len(双字)。您应该在 Vba 选项中启用“需要变量声明(选项显式)”。它有助于发现此类错误。

相关内容