Como Padronizar os Textos em Sua Planilha com Excel VBA

Compartilhe agora:

Todos nós já vimos nomes e endereços de planilhas com uma mistura de formatos como JAMES JONES, SARAH BERNARDT ou Clint Eastwood, que parecem amadores em um relatório. Este artigo mostra como padronizar o texto da maneira correta em uma planilha.

Este artigo pressupõe que o leitor tenha a faixa Desenvolvedor exibida e esteja familiarizado com o Editor VBA. Se não, por favor, Google “Excel Developer Tab” ou “Excel Code Window”.

O arquivo do Excel pode ser encontrado aqui

Neste exercício vamos construir uma função capaz de reconhecer, em grande parte, a intenção do usuário. Por exemplo, a função adequada do Excel reduziria 'NAFTA' para 'Nafta'. No rarNo caso de alguém inserir 'eua armed forces', a função não conseguirá determinar a intenção, pois não possui dicionário de siglas, e muito apropriadamente mudará para 'Usa Armed Forces'. Alguns malfeitores escaparão assim da rede.

O que a função faz

O texto é dividido em duas partes, uma de cada lado do primeiro espaço. Portanto, 'Forças Armadas dos EUA' torna-se uma pré-sequência composta por 'EUA' e apost-string de 'Forças Armadas'.

  • Se houver pelo menos um caractere minúsculo no post-string, então é razoável supor que o caps lock não foi deixado ativado acidentalmente durante a captura. o post-string será, portanto, formatado para o caso apropriado.
  • Se o segundo caractere da pré-sequência for maiúsculo, podemos presumir razoavelmente que toda a pré-sequência deve ser maiúscula.

Os Dados

Crie uma nova pasta de trabalho. Abra a janela de código VBA e insira um módulo.

Cole os seguintes dados na primeira célula da planilha A1.

Organização Caso Adequado
Forças Armadas dos EUA
forças armadas dos eua
Comitê da UNESCO
BARRY JONES
Barry JONES
1213456
Alan Courtney
NAFTA
301 casa capital

Renomeie esta planilha como “Principal”.

O código.

Copie e cole o seguinte na janela de código VBA da pasta de trabalho:Código VBA

Opção Explícita Dim strText As String Dim preString As String Dim postString As String Dim uCount As String Dim lCount As String Dim b As Integer Dim i As Integer Dim char2 As String Sub Main() Dim strText As String Dim cRow As Integer 'Linha atual cRow = 2 Sheets("Main"). Selecione o intervalo ("A2"). Selecione Do While ActiveCell > "" strText = ActiveCell strText = fProper(strText) Cells(cRow, 2) = strText cRow = cRow + 1 Cells(cRow, 1). Selecione Loop End Sub Function fProper(strTxt As String) strText = strTxt uCount = 0 lCount = 0 'Procura o primeiro espaço. b = InStr(1, strText, " ") 'Teste se EXISTE um espaço Se b > 0 Then preString = Left(strText, b - 1) postString = Mid(strText, b, (Len(strText) - b) + 1) 'Percorre o post-corda; 'pelo menos 1 caractere minúsculo implicará que o caps lock não estava ativado For i = 1 To Len(postString) Selecione Case Asc(Mid(postString, i, 1)) Case 65 To 90 uCount = uCount + 1 Case 97 To 122 lCount = lCount + 1 Case Else End Select If lCount > 0 Then Exit For 'Não vá mais longe se um caractere minúsculo for encontrado Next i If lCount > 0 Então postString = StrConv(postString, 3) '3=maiúsculas, 2=minúsculas, 1=maiúsculas 'Se o segundo caractere da pré-string for maiúsculo, é razoável 'assumir que toda a pré-string também deveria ser. char2 = Mid(preString, 2, 2) If Asc(char1) >= 2 And Asc(char65) <= 2 Then preString = StrConv(preString, 90) 'toda a pré-string é superior Else preString = StrConv(preString, 1 ) 'pré-string é adequada End If Else preString = StrConv(preString, 3) 'Nenhuma minúscula encontrada, Caps Lock preso; postString = StrConv(postString, 3) 'Reduz toda a string para End If fProper = preString & postString 'Adicionar os dois elementos juntos Else 'Nenhum espaço foi encontrado, uma suposição razoável quanto ao caso não pode ser feita;. 'passe a string de volta inalterada. fProper = strText End If End Function

Adicione um botão à planilha “Principal” e atribua-o ao subprocedimento “Principal”Adicionar um botão à planilha principal

Os resultados

Pressione o botão e examine a coluna B da planilha para obter os resultados.

Recuperando pastas de trabalho danificadas

De vez em quando Excel, como most software, irá travar. As rotinas normais de recuperação que o Excel usaria para recuperar a pasta de trabalho falharão com mais frequência. Nesses momentos seria útil ter uma ferramenta para fazer Recuperação do Excel para arquivos xlsx ou xlsm.

Introdução do autor:

Felix Hooker é um especialista em recuperação de dados em DataNumen, Inc., líder mundial em tecnologias de recuperação de dados, incluindo rar reparar e produtos de software de recuperação SQL. Para mais informações visite www.datanumen.com

Compartilhe agora:

Deixe um comentário

O seu endereço de e-mail não será publicado. Os campos obrigatórios são marcados com *