Я хочу сделать следующее: у меня около 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 либо тормозит, зависает или иногда падает после этого.

Что можно сделать, чтобы предотвратить это?

ОБНОВЛЕНИЕ: После исправления имени переменной, упомянутого Сифором, текст больше не искажается, но иногда иногда разбивается на отдельные строки, вот изображение, чтобы показать, что я имею в виду: нажмите меня

1 ответ1

0

Я думаю, что это ошибка в вашем коде, Len(bworld) должен быть Len(bword). Вы должны включить объявление переменных (Option Explicit) в опциях Vba. Это помогает найти такие ошибки.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .