Contar palavras no Excel VBA - Macros fáceis do Excel

Índice

Abaixo, veremos um programa em Excel VBA que conta o número de palavras em um intervalo selecionado. Presume-se que um ou mais espaços separem palavras.

Situação:

1. Primeiro, declaramos dois objetos Range e três variáveis. Chamamos os objetos Range de rng e cell. Uma variável Integer que chamamos de cellWords, uma variável Integer que chamamos de totalWords e uma variável String que chamamos de conteúdo.

Dim rng como intervalo, célula como intervalo
Dim cellWords, totalWords As Integer, content As String

2. Inicializamos o objeto Range rng com o intervalo selecionado e as duas variáveis ​​do tipo Integer com valor 0.

Definir rng = Seleção
cellWords = 0
totalWords = 0

3. Queremos verificar cada célula em um intervalo selecionado aleatoriamente (este intervalo pode ser de qualquer tamanho). No Excel VBA, você pode usar o loop For Each Next para isso. Adicione as seguintes linhas de código:

Para cada célula em rng
Próxima célula

Nota: rng e cell são escolhidos aleatoriamente aqui, você pode usar qualquer nome. Lembre-se de referir-se a esses nomes no restante do código.

4. Em seguida, determinamos para cada célula neste intervalo quantas palavras ela contém. Para ignorar uma célula que contém uma fórmula, adicione a seguinte linha de código entre For Each e Next (somente se cell.HasFormula for false continuaremos).

If Not cell.HasFormula Then
Fim se

5. Primeiro, escrevemos o conteúdo da célula para o conteúdo variável. Em seguida, removemos os espaços no início e no final (se houver). No Excel VBA, você pode usar a função Trim para isso. Por exemplo, "excel vba" será convertido em "excel vba". Adicione as seguintes linhas de código em sua instrução If.

content = cell.Value
content = Trim (conteúdo)

Observação: a função trim no Excel VBA não remove os espaços extras entre as palavras, mas está tudo OK neste exemplo.

6. Neste ponto, uma célula ainda pode estar vazia. Se a célula estiver vazia, atribuímos o valor 0 à variável cellWords. Caso contrário, contém pelo menos uma palavra e atribuímos o valor 1 à variável cellWords. Adicione as seguintes linhas de código em sua instrução If.

Se content = "" Então
cellWords = 0
Outro
cellWords = 1
Fim se

Uma célula pode conter mais de uma palavra, é claro. Isso é exatamente o que queremos descobrir agora. Como exemplo, tomamos: "excel vba". Se uma célula contém pelo menos um espaço neste estágio, ela contém pelo menos mais uma palavra. Você pode usar a função Instr no Excel VBA para procurar um espaço. Instr (conteúdo, "") encontra a posição do primeiro espaço no conteúdo.

7. Faremos uso da estrutura Do While Loop. O código colocado entre essas palavras (nas etapas 8, 9 e 10) será repetido enquanto a parte após Do While for verdadeira. Queremos repetir essas etapas, desde que Instr (content, "")> 0 seja verdadeiro (desde que o conteúdo contenha um espaço e, portanto, mais palavras). Adicione o Do While Loop em sua instrução If.

Do While InStr (content, "")> 0
Ciclo

8. Em seguida, pegamos a parte do conteúdo começando na posição do primeiro espaço. Usamos a função Mid para isso.

content = Mid (content, InStr (content, ""))

Por exemplo: Mid ("excel vba", InStr ("excel vba", "")) fornecerá "vba".

9. Cortamos a corda novamente.

content = Trim (conteúdo)

Resultado: "vba"

10. Incrementamos cellWords em 1.

cellWords = cellWords + 1

Este Loop Do While será repetido enquanto o conteúdo contiver um espaço e, portanto, mais palavras. Em nosso exemplo, saímos do Do While Loop, pois "vba" não contém mais um espaço! Resultado: esta célula contém 2 palavras.

11. Depois de verificar uma célula, adicionamos cellWords à variável totalWords. Esta linha de código deve ser colocada fora do Do While Loop, mas na instrução If.

totalWords = totalWords + cellWords

Todo o processo começa novamente para a próxima célula até que todas as células tenham sido verificadas.

12. Finalmente, exibimos o valor de totalWords usando um msgbox. Esta linha de código deve ser colocada fora do loop For Each Next.

MsgBox totalWords & "palavras encontradas no intervalo selecionado."

13. Teste o programa.

Resultado:

Você vai ajudar o desenvolvimento do site, compartilhando a página com seus amigos

wave wave wave wave wave