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