2009-10-03 2 views
1

을 낮추기로 변환 나는 < 및> 문자 사이에 텍스트를 찾을 싶습니다 다음 단어의 첫 글자를 대문자로 "정상"경우에 발견 된 모든 텍스트를 설정합니다. 여기에 내가 지금까지 가지고있는 것입니다 :워드 VBA는 - 구분 기호 사이의 텍스트를 찾아 경우

Function findTextBetweenCarots() As String 

Dim strText As String 

With Selection 
    .Find.Text = "<" ' what about <[^0-9]+> ? 
    .Find.Forward = True 
    .Find.Wrap = wdFindContinue 
End With 

Selection.Find.Execute 


' Application.Selection. ' how do I get the text between the other ">"? 
    findCarotSymb = Application.Selection.Text 

End Function 

또는 더 좋은 방법이 있습니까? 또한 간단한 문서에 근무 VBScript를 정규식 5.5 라이브러리를 사용하여 문제를 접근,하지만 복잡한 테이블 특정 문서에. 예를 들어 간단히 텍스트를 굵게 표시하려고하면 다음과 같이됩니다.

Sub BoldUpperCaseWords() 

    Dim regEx, Match, Matches 
    Dim rngRange As Range 

    Set regEx = New RegExp 
    regEx.Pattern = "<[^0-9]+>" 
    regEx.IgnoreCase = False 
    regEx.Global = True 

    Set Matches = regEx.Execute(ActiveDocument.Range.Text) 

    For Each Match In Matches 

    ActiveDocument.Range(Match.FirstIndex, Match.FirstIndex + Len(Match.Value)).Bold = True 

    Next 

End Sub 

은 테이블이있는 문서에서는 작동하지 않습니다. 사실, 심지어 굵은 올바른 텍스트합니다 (<> 사이에있는 텍스트.이 내가 놓친 거지 여기에 광범위한 문제가 있는게 틀림 없어 것입니다.

답변

1

난 당신의 코드를 테스트하지만,이 정규식을 시도 할 수

regEx.Pattern = "<[^0-9<>]+>" 
귀하의 정규식 "<foo><bar>"에 전체 문자열과 일치하는 것이다

.
위의 정규식은 다음에만 <foo>, 내가 같은 결과를 얻을 <bar> 등등.

+0

일치합니다가. 문서에 대한 특별한 뭔가가있다 I 이것을 사용하고 있습니다. ey이 도움이된다면, 4 컬럼 테이블입니다. 내가 할 수있는 가장이 내 옆에있는 편집에서 샘플 문서의 스크린 샷을 제공합니다. 이 모든 텍스트가 포함 된 경우 – JohnZaj

+0

인쇄'ActiveDocument.Range.Text' 확인합니다. 은'regEx' 속성은 여러 줄의 텍스트를 처리 할 경우에도 확인합니다. 작동해야 '= –

+0

regEx.MultiLine를 참 (가능하면, 테이블의 행을 반복하고 각 컬럼에 정규식을 적용하려고). 이제 테이블을 반복하려고합니다 ... – JohnZaj