배치되는 경우보다는 발견 텍스트를 선택하는 방법에 대해 설명합니다.워드 VBA : 커서가이 아마 간단하지만 나는 그것이 동작하지 않습니다
나는, 내 문서를 검색 문자열 '하여 alog'를 포함하고 'UE'을 추가 할 단어를 찾을 필요가있다. 예 : 'catalogs'-> 'catalogs'.
위가 잘 작동하지만 다음 비트는 동작하지 않습니다 : 발견 된 문자열이 이미있는 경우 '를 UE'는 내가 다른 'UE'를 추가하고 싶지 않아 '로그'후.
매크로로부터 액세스 서브 루틴은 아래와 같다. 나는 '실행하면서'부분에 다음 줄을 추가하려했지만, '선택은'항상 커서가 될 일이 단어 것으로 밝혀졌습니다.
With Selection
.Expand unit:=wdWord
End With
어떻게 내가) 발견 된 범위의 내용을 선택하고 두 문자가 'UE'경우 II)를 참조하기 위해 두 개의 문자로 그 새로운 선택을 확장합니까?
감사합니다. 나는 당신의 질문의 첫 번째 부분을 따라 아주 확실하지 않다
Sub do_replace2(old_text As String, new_text As String, Count_changes As Integer)
' Replaces 'log' with 'logue'
' Ignores paragraphs in styles beginning with 'Question'
Dim rg As Range
Set rg = ActiveDocument.Range
With rg.Find
.Text = old_text
While .Execute
If Left(rg.Paragraphs(1).Style, 8) <> "Question" Then
rg.Text = new_text
With ActiveDocument.Comments.Add(rg, "Changed from '" & old_text & "'")
.Initial = "-logs"
.Author = "-logs"
End With
Count_changes = Count_changes + 1
End If
rg.Collapse wdCollapseEnd
Wend
End With
End Sub
많은 감사 코민테른 : 당신은 단지 테스트를 위해 이것을 사용하고 있기 때문에합니다 (
.Find
방법은 사기가 될 수 있기 때문에)하는 사본rg
의에서이 작업을 테스트합니다. 저건 완벽 해. – hmm감사합니다. comintern; 나가 말한대로 + 2는 잘 작동한다, 저에게 끈을 가진 범위 시작 (말하기) 735 그리고 끝 737를 준다. 그러나 .wdcollapsestart 및 .start + 5를 수행하면 범위 시작과 끝은 같고 문자열은 null입니다. 왜 '시작'은 '끝'과 같은 방식으로 작동하지 않습니까? – hmm
또 다른 업데이트 : 내가 이렇게 할 때 : test.Collapse wdCollapseStart test.Start = test.Start - 5 잘 작동합니다. '시작 + n'할 수 없습니까? – hmm