2012-03-23 2 views
1

나는이 enter image description here특정 텍스트

같은 MS Word 문서 모양이 지금은 문구 "/ CCID_ntRow /"를 포함하는 테이블을 찾으려면이 포함 된 MS 워드 표를 찾습니다. 문서 구조에서 볼 수 있듯이 두 번째 테이블입니다. 하지만 내가 반복하는 모든 테이블에서 Find.Execute가 반환되면 true를 반환합니다.

int whichTable = 1; //starting index is 1, not 0 

do { 
    doc.Tables[whichTable].Range.Find.ClearFormatting(); 
    doc.Tables[whichTable].Range.Find.Wrap = MSWord.WdFindWrap.wdFindContinue; 
    doc.Tables[whichTable].Range.Find.Text = "/CCID_ntRow/"; 
    doc.Tables[whichTable].Range.Select(); 
    isFound = doc.Tables[whichTable].Range.Find.Execute(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, ref missing); 
    if (isFound == true) { 
     //everytime, isFound returns true. The right must be 2 
     break; 
    } 
    whichTable++; 
} while (true); 

날이를 해결하십시오 : 다음은 내 코드입니다. 미리 감사드립니다.

답변

1

Range.Find.Execute가 코드에 잘못되었습니다. 우리가 유형의 표를 IEnumerable 모든 요소 테이블을 변환 할 수 있습니다

isFound = doc.Tables[whichTable].Range.Find.Execute("/CCID_ntRow/", 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); 
3

작동 아래를보십시오, 우리는 필요한 표를 얻기 위해 LINQ 쿼리를 사용하여 진행할 수 있습니다.

var requiredTable = Tables.Cast<Table>().FirstOrDefault(t => t.Range.Text.Contains("SOME TEXT")); 
관련 문제