문제

누구든지 단어의 텍스트를 변경할 수있는 방법을 알고 있습니다. 개체를 정리하지만 여전히 형식을 유지합니까? 예를 들어 내가 "이것"이 있다면 텍스트"그리고 나는 그것을 바꾸어"그것으로 바꿉니다 txt", TXT는 여전히 대담 할 것입니다.

나는 독립 API에서 새 텍스트를 받기 때문에 단일 단어뿐만 아니라 범위의 전체 텍스트를 변경할 수있는 방법을 찾고 있습니다. 새 텍스트와 이전 텍스트가 같은 숫자를 가지고 있다고 가정 할 수 있습니다. 단어의.

이것이 내가 지금까지 얻은 것입니다.

    for (int i = 0; i < oldWords.Length; i++)
    {
        if (oldWords[i] == newWords[i])
            continue;

        object Replace = WdReplace.wdReplaceOne;
        object FindText = oldWords[i];
        object ReplaceWith = newWords[i];
        var success = Sentence.Find.Execute(parameters stub);
    }            

그러나 어떤 이유로 든, 범위 선택이 발견 된 단어에 남아 있기 때문에 첫 번째 실행에서만 성공합니다.

편집 : 각 실행 후, 나는 내 범위의 원래 끝 위치를 복원했습니다.

감사.

도움이 되었습니까?

해결책

당신은 사용할 수 없습니다 Execute 메소드 형식으로 텍스트를 변경하는 방법. 당신은 그것을 할 수 있습니다 :

Range rng=doc.Content;
rng.Find.Execute(ref finding, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing)

//if this method returns true, you will get the range at the finding location.
if(rng.Find.Found)
{
  rng.Text='sth';
  rng.Bold=0;
}

어쩌면 이것이 당신을 도울 수 있습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top