Macro do Excel: definindo o intervalo de caracteres para texto distorcido em negrito

Macro do Excel: definindo o intervalo de caracteres para texto distorcido em negrito

O que eu quero fazer é o seguinte: tenho cerca de 1.400 linhas cheias de dados, das quais a última coluna contém muito texto. Aqui está uma imagem para mostrar o que quero dizer: imagem removida porque só posso postar 2 links por vez.

Agora, para facilitar a leitura desse texto, quero colocar algumas palavras em negrito.

No momento tenho a seguinte macro:

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. Percorrer todas as células selecionadas
  2. percorrer todas as palavras que devem estar em negrito e verificar se elas estão contidas na célula
  3. Se estiverem, coloque-os em negrito

Agora, meu problema é que, depois de executá-lo, meu texto fica completamente em negrito ou distorcidoAssim , ou coloca cada letra em uma linha separada. O Excel fica lento, congela ou às vezes trava depois disso.

O que pode ser feito para evitar isso?

ATUALIZAÇÃO: Depois de corrigir o nome da variável mencionada por Siphor, o texto não fica mais distorcido, mas às vezes ainda é dividido em linhas separadas, aqui está uma imagem para mostrar o que quero dizer:clique em mim

Responder1

Eu acho que é um bug no seu código,Len(bmundo)deveria estarLen (bpalavra). Você deve habilitar a declaração de variável necessária (opção explícita) nas opções do Vba. Ajuda a encontrar esses bugs.

informação relacionada