IPB

Bem-vindo, visitante ( Entrar | Registrar )

 
Reply to this topicStart new topic
Substituição De Caracteres Repetidos No Word
Guest_Doxbrieree_*
post Oct 25 2013, 12:09 PM
Post #1





Visitantes






gtbf celebrex 200 mg dhrbmbvi celebrex medication aicu, celebrex 200 mg grwafhhi.
Go to the top of the page
 
+Quote Post
OsmarJr
post Jul 24 2008, 12:52 PM
Post #2


Moderador
***

Grupo: Root Admin
Posts: 170
Registrado: 2-July 08
De: Curitiba - Paraná - Brasil
Membro N°: 3



Substituição de caracteres repetidos no Word

Autor: Edson Luiz Branco

Gostaria de compartilhar uma dica que tenho feito bastante uso para substituição de caracteres repetidos: no Word, tanto diretamente na caixa de diálogo "Localizar e Substituir" como no VBA, pode-se usar a seqüência de caracteres curinga xxx{2;} onde os caracteres antes da chave (xxx) representam o caracter ou caracteres repetidos que quero localizar/substituir e que no seu caso seria apenas um espaço em branco. Estaríamos dizendo ao Word: "encontre todas as ocorrências de 2 ou mais seqüências xxx que estejam contíguos". Assim, a substituição ocorrerá em apenas uma operação. Para usar esta forma, devemos lembrar de ativar a opção "Usar caracteres curinga" na caixa de diálogo Localizar e Substituir.

Além disso, para contar as ocorrências no VBA, poderia ser usado diretamente o método Execute do objeto Find num loop com um contador qualquer, primeiramente sem fazer as substituições (com Replace:=wdReplaceNone), ou fazendo-as uma a uma (com Replace:=wdReplaceOne). Exemplo:

CODE
Sub SubstituirMúltiplosEspaços()
  Dim i As Long
  ActiveDocument.Range(Start:=0, End:=0).Select
  With Selection.Find
      .ClearFormatting
      .Text = " {2;}"
      .MatchWildcards = True
      .Forward = True
      Do While .Execute(Wrap:=wdFindStop, _
                        Replace:=wdReplaceNone)
         i = i + 1
      Loop
      If MsgBox("Existem " & i & " ocorrências. Sustituir?", vbYesNo) = vbYes Then
         .Replacement.ClearFormatting
         .Replacement.Text = " "
         .Execute Wrap:=wdFindContinue, Replace:=wdReplaceAll
      End If
  End With
End Sub


Nota-se entretanto que aplicando o código acima, a contagem considera não a quantidade de ocorrências de 2 espaços próximos, mas a de 2 ou mais espaços próximos contíguos. Se for importante saber de 2 em 2, basta alterar o código para:

CODE
Sub SubstituirMúltiplosEspaços()
  Dim i As Long
  ActiveDocument.Range(Start:=0, End:=0).Select
  With Selection.Find
      .ClearFormatting
      .Text = "  "
      .MatchWildcards = False
      .Forward = True
      Do While .Execute(Wrap:=wdFindStop, _
         Replace:=wdReplaceNone)
         i = i + 1
      Loop
      If MsgBox("Existem " & i & " ocorrências. Sustituir?", vbYesNo) = vbYes Then
         .Text = " {2;}"
         .MatchWildcards = True
         .Replacement.ClearFormatting
         .Replacement.Text = " "
         .Execute Wrap:=wdFindContinue, Replace:=wdReplaceAll
      End If
  End With
End Sub
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
2 usuário(s) está(ão) lendo este tópico (2 visitantes e 0 usuários anônimos)
0 membros:

 

Modos de Exibição: Padrão · Mudar para: Linear+ · Mudar para: Outline


Versão Simples Horário: 29th May 2017 - 10:23 PM