VBA:

VBA:

텍스트에 [단어]-[단어]가 여러 개 있습니다. 예를 들어 self-interest 대신 self-interest가 올바른 형식입니다. MS Word의 와일드카드를 사용하여 스트로크 뒤의 불필요한 공백을 제거하려고 합니다. 찾기 및 바꾸기 상자에 다음을 입력합니다.

찾기: *- *
바꿀 내용: \1-\2

그러나 작동하지 않습니다. 이를 수행하기 위한 올바른 형식은 무엇입니까?

답변1

VBA:

WrapReplaceWord 문서에서 실행합니다 .

Sub WrapReplace()
    Call RegExpReplace("(\w+)\-\s(\w+)", "$1-$2")
End Sub

Private Sub RegExpReplace(pattern As String, Backreference As String)
    Dim strReplacement As String
    Set oRegExp = CreateObject("VBScript.RegExp")

    With oRegExp
        .Global = True
        .IgnoreCase = False
        .pattern = pattern
    End With

    Set matches = oRegExp.Execute(ActiveDocument.Content)
 
    For Each match In matches
        Set matchRange = ActiveDocument.Content
    
        strReplacement = oRegExp.Replace(match.Value, Backreference)
    
        With matchRange.Find
            .Text = match.Value
            .Replacement.Text = strReplacement
        
            .Wrap = wdFindAsk
            .Execute Replace:=wdReplaceOne
        End With
    Next

End Sub

답변2

\1과 \2 부분이 무엇인지 Word에 알리는 것을 생략했습니다. 별표 하이픈과 별표 주위에 둥근 괄호를 추가하되 그 사이에 공백을 두십시오. 바꿀 내용에서는 이제 \1의 일부로 캡처되므로 하이픈이 필요하지 않습니다.

여기에 이미지 설명을 입력하세요

관련 정보