네, 아주 간단한 해결책이 있습니다. 모든 북마크를 반복하고 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을 가지고 있지만 그것이 작동 희망하지 않았다.
와우는 KazJaw가 내 질문에 대답하고 있다고 믿을 수 없습니다. ..... 잠시 동안 많은 답변을 읽고 사용하고 있습니다 ... 당신은 매우 도움이됩니다! –
KazJaw, 그냥 위의 테스트 및 "외부"nonbmtables뿐만 아니라 삭제됩니다. 죄송합니다, 내 문제는 여기에 있습니다 : 나는 북마크 된 테이블 (사용자가 북마크 된 테이블 내부에 입력) 및 target.doc이있는 source.doc가 있습니다. Word에서 INCLUDETEXT 명령을 사용하여 북마크 된 콘텐츠를 최종 템플릿 (target.doc) 섹션에 연결합니다. 문제점 : INCLUDETEXT는 내용과 함께 테이블을 가져옵니다. 이 INCLUDETEXT 필드는 다른 (NON-bookmarked) 테이블에 삽입됩니다. source.doc에서 북마크 된 콘텐츠와 함께 제공되는 표를 제거하고 target.doc의 원래 (비 BM) 표를 유지해야합니다. –
그래, 네 질문에 묘사 된 것과는 조금 다른 상황이 보인다. 나는 당신이 당신 스스로 해결할 수 있기를 희망하는 몇 가지 힌트를 줄 수 있습니다. 곧 답변을 드리겠습니다 ... –