Public Function CountStringOccurrence( _ByVal strString As String, _ByVal strCharString As String, _Optional ByVal blnCase As Boolean = True _) As Long' Declaração das variáveisDim lngPosition As LongDim lngLen As LongDim lngCount As Long' Inicializa o contadorlngCount = 0lngLen = Len(strCharString)' Verifica se a comparação será sensível ao casoIf blnCase = False Then' Se a busca for insensível ao caso, converte ambas as strings para maiúsculasstrString = UCase(strString)strCharString = UCase(strCharString)End If' Verifica se a substring não está vaziaIf lngLen = 0 ThenCountStringOccurrence = 0Exit FunctionEnd If' Loop para contar as ocorrências da substring na string principalFor lngPosition = 1 To Len(strString) - lngLen + 1' Compara a substring com a parte da string principal em cada posiçãoIf StrComp(Mid(strString, lngPosition, lngLen), strCharString, vbBinaryCompare) = 0 ThenlngCount = lngCount + 1End IfNext lngPosition' Retorna o número de ocorrênciasCountStringOccurrence = lngCountEnd FunctionExplicação do Código1. Declaração das Variáveis: O código declara três variáveis (`lngPosition`, `lngLen`, e `lngCount`). A variável `lngPosition` será usada para percorrer a string principal, `lngLen` armazena o comprimento da substring a ser contada, e `lngCount` mantém o número de vezes que a substring é encontrada.2. Inicialização do Contador: A variável `lngCount` é inicializada como 0, pois inicialmente não há ocorrências da substring. A variável `lngLen` é preenchida com o comprimento da substring `strCharString`, pois essa informação é necessária para o cálculo.3. Sensibilidade ao Caso (Case-Insensitive): Se o parâmetro `blnCase` for `False`, a função converte ambas as strings (tanto a principal quanto a substring) para maiúsculas usando a função `UCase`. Isso torna a comparação insensível ao caso, ou seja, as letras maiúsculas e minúsculas serão tratadas como iguais.4. Validação de Substring Vazia: Antes de iniciar a contagem, o código verifica se a substring `strCharString` tem comprimento maior que 0. Se a substring estiver vazia, o código retorna 0, pois não há como contar uma substring vazia em qualquer string.5. Loop de Comparação: O loop `For` percorre a string principal `strString` de acordo com o comprimento da substring, comparando cada parte da string principal com a substring usando a função `Mid`. A função `StrComp` é utilizada para comparar as duas partes, e o parâmetro `vbBinaryCompare` garante uma comparação binária.6. Contagem de Ocorrências: Sempre que uma correspondência é encontrada, o contador `lngCount` é incrementado. O resultado final é o número total de vezes que a substring aparece na string principal.7. Resultado Final: Após o loop, a função retorna o valor de `lngCount`, que é o número de ocorrências da substring na string principal.8. Melhorias no Código: A principal melhoria foi otimizar a estrutura de controle de fluxo e evitar o uso de variáveis desnecessárias. Além disso, a função agora verifica se a substring está vazia antes de realizar qualquer processamento. Isso evita erros e melhora a eficiência do código.9. Eficiência e Robustez: O código agora é mais eficiente, pois a conversão de caso é feita apenas uma vez, e a busca por ocorrências é realizada de forma mais eficiente, sem processamento desnecessário.
Exemplos de Uso do Código:
1. Contagem de Palavras-chave em Relatórios de Pesquisa:
- Objetivo: Contar quantas vezes uma palavra-chave específica aparece em um relatório de pesquisa.
- Exemplo de uso: A função é usada para contar as ocorrências de uma palavra-chave em um conjunto de relatórios, facilitando a análise de tendências ou a revisão de conteúdo.
2. Análise de Conteúdo em Relatórios Jurídicos:
- Objetivo: Contar a frequência de termos específicos em documentos jurídicos, como "contrato", "acordo" ou "confidencial".
- Exemplo de uso: Os advogados podem usar o código para encontrar rapidamente a ocorrência de termos importantes em documentos legais e garantir que os documentos estejam completos ou em conformidade com certos requisitos.
3. Contagem de Erros em Planilhas de Auditoria:
- Objetivo: Contar quantas vezes um termo específico de erro (como "erro", "inválido", "não encontrado") aparece em uma planilha de auditoria.
- Exemplo de uso: Durante uma auditoria de dados, o código pode ser usado para contar ocorrências de erros ou inconsistências em grandes volumes de dados.
4. Análise de Feedback de Clientes:
- Objetivo: Contar a frequência de termos específicos, como "satisfação", "atendimento" ou "produto", em feedbacks de clientes.
- Exemplo de uso: Empresas podem usar o código para analisar rapidamente o feedback de clientes e identificar pontos fortes ou áreas de melhoria.
5. Contagem de Ocorrências em Arquivos de Log:
- Objetivo: Contar quantas vezes uma string de erro ou um evento específico aparece em arquivos de log de sistemas.
- Exemplo de uso: Administradores de sistemas podem usar a função para identificar rapidamente problemas recorrentes ou padrões de falhas em registros de eventos.
Nenhum comentário:
Postar um comentário