Remove o espaço em branco no final das células da tabela

3

Eu abri um arquivo PDF no Word para editá-lo (o documento original do Word é perdido). Durante a conversão, cada linha de texto e cada célula da tabela recebeu um espaço extra. Claro, eles realmente não machucam ninguém, exceto eu e meu leve OCD. Eu não gosto de perder espaço em branco.

Étrivialremoverumespaçoàdireitanofinaldeumalinha(procure" ^p" e substituir por "^p" ), mas não parece haver um caractere especial para "marcador de célula de fim de tabela" em o diálogo localizar / substituir e o não parece suportar âncoras qualquer um.

Uma pesquisa no Google me levou a Esta dica sobre como adicionar algo ao final de uma célula da tabela (planejei adicionar algo como "§§§" a cada célula e fazer uma pesquisa / substituição simples para " §§§" ), mas no Word 2016, não consigo encontrar o estilo "célula de tabela", pelo menos não na versão alemã do Word.

Alguma outra ideia que eu possa tentar? Além disso, alguma idéia de como remover um ou mais espaços no final de uma célula de linha / tabela? Os quantificadores parecem não funcionar em uma localização / substituição não-regex.

    
por Tim Pietzcker 19.01.2016 / 09:39

2 respostas

1

OK, andei pesquisando o modelo de objeto VBA do Word e descobri isso (o Microsoft VBScript Regular Expressions 5.5 habilitado):

Sub TrimCellSpaces()
    Dim myRE As New RegExp
    Dim itable As Table
    Dim C As Cell
    myRE.Pattern = "\s+(?!.*\w)"
    For Each itable In ThisDocument.Tables
        For Each C In itable.Range.Cells
            With myRE
                C.Range.Text = .Replace(C.Range.Text, "")
            End With
        Next
    Next
End Sub

Curiosamente, minha tentativa inicial (usando Trim(C.Range.Text) ) não removeu os espaços, ao contrário, adicionou um marcador de parágrafo ao final de cada célula. Intrigado com isso, eu tentei um regex \s+$ com os mesmos resultados. Inspecionando a árvore de objetos local, descobri que uma célula que continha o texto Note  na verdade continha Note \x0d\x0d\x07 ( Eu descobri por que este é o caso ). É por isso que eu tive que usar esse regex estranho para encontrar os últimos espaços em uma célula ...

    
por 19.01.2016 / 15:02
0

Eu uso uma modificação do Sub de Tim Pietzcker, onde eu uso combinação de Left () e Trim () ao invés de regExp (e também uso o ActiveDocument em vez de ThisDocument ):

Sub TrimCellSpaces()
    Dim itable As Table
    Dim C As Cell
    For Each itable In ActiveDocument.Tables
        For Each C In itable.Range.Cells
            C.Range.Text = Trim(Left(C.Range.Text, Len(C.Range.Text) - 2))
        Next
    Next
End Sub
    
por 24.04.2018 / 13:16