Макрос 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

Я думаю, это ошибка в вашем коде,Лен(bworld)должно бытьЛен(bword). Вам следует включить Variable Declaration required(Option Explicit) в параметрах VBA. Это помогает находить такие ошибки.

Связанный контент