2015-01-22 4 views
0

여러 테이블이있는 Word 문서가 있습니다. 그들 중 일부는 북마크가 있고 다른 것은 북마크하지 않습니다. VBA를 사용하여 북마크가있는 테이블에만 ConvertToText 명령을 구현하는 방법이 있습니까 (북마크 이름에 관계없이 .... 40 개 이상의 북마크가 있음)? 기본적으로 북마크 된 표를 제거하고 텍스트를 그대로 유지하려고합니다. 북마크 된 테이블은 북마크없이 다른 테이블에 삽입됩니다. MS Word 2007을 사용 중입니다.책갈피가있는 테이블을 삭제하는 Word VBA

감사합니다. Seb

답변

0

네, 아주 간단한 해결책이 있습니다. 모든 북마크를 반복하고 wdWithInTable인지 확인해야합니다. 그렇다면 전체 표를 텍스트로 변환하십시오. 여기 당신을위한 코드 : 코멘트의 추가 설명은 아래에 당신이 당신의 문제를 해결하기위한 몇 가지 힌트가

Sub ConvertTablesWithBookmarks() 


    Dim BK As Bookmark 
    For Each BK In ActiveDocument.Bookmarks 
     If BK.Range.Information(wdWithInTable) Then 
      'uncomment for test just to check if working as expected 
      'BK.Range.Tables(1).Select 

      BK.Range.Tables(1).ConvertToText 
     End If 
    Next 

End Sub 

후.

Activedocument.bookmarks(1).Range.Tables(1) 

는이 코드

Activedocument.bookmarks(1).Range.Tables(1).Tables(1) 

을 사용하지만 난 당신이 내 몇 테이블이 할 수 있다고 생각 위의 표에서 첫 번째 테이블을 찾으려면 :

은 북마크가있는 테이블을 찾으려면 부모 테이블 따라서 나는이 같은 루프를 실행하는 것이 좋습니다 (의사 코드를 사용자의 요구에 약간의 조정이 필요) :

dim parentTable as Table 
dim BK as Bookmark  'or a reference to one from loop above 
set BK = Activedocument.bookmarks(1) 
set parentTable = BK.Range.Tables(1) 
dim i as integer 
for i=1 to parentTable.Tables.Count 
    if parenttable.tables(i).range.start >=bk.range.start and _ 
     parenttable.tables(i).range.end <=bk.range.end Then 
     'here we know that tables(i) is inside bookmark 1 (BK) 

     parenttable.tables(i).converttotext 
    end if 
next i 

나는 그것을 테스트하는 oportunity을 가지고 있지만 그것이 작동 희망하지 않았다.

+0

와우는 KazJaw가 내 질문에 대답하고 있다고 믿을 수 없습니다. ..... 잠시 동안 많은 답변을 읽고 사용하고 있습니다 ... 당신은 매우 도움이됩니다! –

+1

KazJaw, 그냥 위의 테스트 및 "외부"nonbmtables뿐만 아니라 삭제됩니다. 죄송합니다, 내 문제는 여기에 있습니다 : 나는 북마크 된 테이블 (사용자가 북마크 된 테이블 내부에 입력) 및 target.doc이있는 source.doc가 있습니다. Word에서 INCLUDETEXT 명령을 사용하여 북마크 된 콘텐츠를 최종 템플릿 (target.doc) 섹션에 연결합니다. 문제점 : INCLUDETEXT는 내용과 함께 테이블을 가져옵니다. 이 INCLUDETEXT 필드는 다른 (NON-bookmarked) 테이블에 삽입됩니다. source.doc에서 북마크 된 콘텐츠와 함께 제공되는 표를 제거하고 target.doc의 원래 (비 BM) 표를 유지해야합니다. –

+0

그래, 네 질문에 묘사 된 것과는 조금 다른 상황이 보인다. 나는 당신이 당신 스스로 해결할 수 있기를 희망하는 몇 가지 힌트를 줄 수 있습니다. 곧 답변을 드리겠습니다 ... –