Macro para substituir. no documento do Word

0

Eu tenho dados de entrada como: the pixels are of 13.45 mm for the

Os dados de saída após a macro devem ser como:

the pixels are of 13,45 mm for the em um documento do Word.

Estou tentando o código abaixo:

Sub RegexReplace1()

    Dim RegEx As Object
    Set RegEx = CreateObject("VBScript.RegExp")
    On Error Resume Next

    RegEx.Global = True

    RegEx.Pattern = "([0-9]*).([0-9]*\s?mm)"

    ActiveDocument.Range = _
        RegEx.Replace(ActiveDocument.Range, ",")

End Sub

mas está substituindo a coisa inteira por .

    
por user145345 05.10.2016 / 11:05

2 respostas

0

Você precisa usar $1,$2 como string de substituição em vez de apenas , para inserir seus grupos de captura antes e depois.

RegEx.Replace(ActiveDocument.Range, "$1,$2")

Além disso, como o Morgan disse, você precisa escapar do . . Eu também sugiro usar + em vez de * , para ter certeza de que você realmente corresponde a um valor de medição.

([0-9]+)\.([0-9]+\s?mm)
    
por 05.10.2016 / 12:24
0

Primeiro, desde que você precisa coincidir com o . , você tem que escapar com um \ (um único . significa "eu quero corresponder a qualquer caractere"):

([0-9]*)\.([0-9]*\s?mm)

Então, como você precisa substituir o . , é necessário usar os parênteses correspondentes em torno dele e não os números:

[0-9]*(\.)[0-9]*\s?mm
    
por 05.10.2016 / 11:07