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:
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”
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
Deixe um comentário