2017-04-10 3 views
2

사용자가 Doc1을 열고 Doc2의 콘텐츠 컨트롤을 채우는 프로세스가 있습니다. 이 일반 텍스트 잘 작동하지만 서식있는 텍스트 및 더 중요한 것은, 서식있는 텍스트 콘텐츠 컨트롤 안에있는 그림에 관한 벽에 실행 해요. 나는 또한 시도콘텐츠 컨트롤에서 다른 콘텐츠 컨트롤로 사진 복사

ThisDocument.SelectContentControlsByTitle("ct2").Item(1).Range.Text = ThisDocument.SelectContentControlsByTitle("ct1").Item(1).Range.Text 

:

ThisDocument.SelectContentControlsByTitle("ct1").Item(1).Range.Copy 
ThisDocument.SelectContentControlsByTitle("ct2").Item(1).Range.Paste 

이 그냥 텍스트와 그림 (들)을 복사하지의 작품에 나타납니다 동안 만

당연히 다음과 같은 텍스트하지만 아무것도 설정하지 않습니다 콘텐츠 컨트롤도. 그래서 나는 ct2 안에서 ct1로 끝납니다.

+0

너무 많이 들여다 보지는 못하지만 분명히 그림은 텍스트와 같은 방식으로 저장되지 않습니다. ms-word가 Excel 같은 모양으로 저장하는지는 모르겠지만 그 점에 관해서는 MSDN 설명서를 살펴 보는 것이 가장 좋습니다. 그런 다음 '복사 붙여 넣기'형식의 메서드를 사용하여 복사하거나 문서 1의 임시 파일에 저장 한 다음 임시 파일 경로를 사용하여 doc2에 삽입해야합니다. clipboard) –

답변

1

간단한 테스트를 통해이 기능을 사용할 수 있습니다. 기본적으로 복사 위치를 선택하고 제 위치에서 삭제하십시오. 이렇게하면 중단 한 지점에서 커서가 정확하게 유지됩니다. 그런 다음 붙여 넣으십시오.이 코드는 교체하려는 그림이 초기 그림 뒤에 있다고 가정합니다. I.E. 복사 한 사진은 copy to 위치보다 문서에서 빠릅니다.

Public Sub MoveCCPic() 

    ThisDocument.SelectContentControlsByTitle("ct1").Item(1).Range.Copy 
    ThisDocument.SelectContentControlsByTitle("ct2").Item(1).Range.Select 

    ThisDocument.SelectContentControlsByTitle("ct2").Item(1).Delete 
    Selection.Paste 

    ThisDocument.SelectContentControlsByTitle("ct1").Item(2).Title = "ct2" 

End Sub 

그림 상자 사이에 텍스트가 없으면 주위에 몇 가지 추가 코드가 나타날 수 있습니다.

+0

확실히 내가 찾던 우아함은 아니지만 그럼에도 불구하고 이것은 내 딜레마를 해결합니다. 감사합니다! –

+0

해킹이 해답 인 'Word VBA'에 오신 것을 환영합니다! ;-) 좋은 사용자 이름. – GibralterTop