문제

문자열의 모든 발생을 "아니오"로 찾고 싶습니다. + 1-2 정수 1과 9 사이의 정수. 그런 다음 "아니오"를 삭제하십시오. 정수/s를 paranthesis 사이에 감싸십시오 : "(4)"또는 "(67). 예를 들어 "No. 34"는 "(34)가되어야합니다.

여러 가지 문제가있는 것 같습니다 (Word 2010) :

  1. 코드는 하나의 정수 만 대체합니다. 하나 또는 두 개의 정수를 어떻게 찾게합니까?
  2. .replacement.text는 "아니오"라는 단어가 아닌 숫자를 포함하는 방법은 무엇입니까? (지금까지 xxxxx를 넣었습니다).
  3. 내 코드는 paranthesis를 추가하지만 활성 문서의 시작과 끝에 있습니다. 대신 숫자를 랩핑하는 방법은 무엇입니까?

    With Selection.Find  
        .Text = "n[or]. [1-9]"  
        .Replacement.Text = "XXXXX"  
        .Forward = True  
        .Wrap = wdFindContinue  
        .Format = False  
        .MatchCase = False  
        .MatchWholeWord = False  
        .MatchWildcards = True  
        .MatchSoundsLike = False
        .MatchAllWordForms = False  
    End With  
    Selection.InsertBefore ("(")  
    Selection.InsertAfter (")")  
    Selection.Find.Execute Replace:=wdReplaceAll 
    
도움이 되었습니까?

해결책

다음 솔루션으로 시도하십시오.

With Selection.Find
    .Text = "(No.)( )([1-9]{1;2})"
    .Replacement.Text = "(\3)"
    .Forward = True
    .Wrap = wdFindContinue
    .Format = False
    .MatchCase = False
    .MatchWholeWord = False
    .MatchWildcards = True
    .MatchSoundsLike = False
    .MatchAllWordForms = False
End With
Selection.Find.Execute Replace:=wdReplaceAll
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top