2017-03-22 1 views
2

나는 VBA 초보자이지만 Excel 2010 차트를 새로운 Word 2010 문서로 내보낼 수있는 코드를 함께 제공합니다. . 내가 가진 유일한 문제는 Excel이 업데이트되면 차트를 Excel에서 연결 해제하여 Excel이 업데이트 될 때 차트가 변경되지 않도록하려는 것입니다. 나는 사방을 보았지만 아무것도 작동하지 않는 것 같습니다.GIF로 링크하거나 저장하지 않고 엑셀 차트를 복사하여 붙여 넣기

청구서에 맞는 다른 코드 만 차트를 가져 와서 붙여 넣기 전에 이미지로 저장하지만 이미지가 저장되지 않아도 작동하지 않습니다. 조직의 사용자는 액세스 권한이 없습니다. C : \ 드라이브에 저장하고 모든 사용자의 세부 정보를 알지 못하면 작업을 수행 할 코드를 작성할 수 없습니다.

지금까지 작성한 코드는 작업을 수행하는이 있지만 해제하지 않습니다

Sub Copy_Paste_Report_1_Graph_to_new_word_document() 
' 
'Copy/Paste An Excel Chart Into a New Word Document 
'(VBE > Tools > References > Microsoft Word 12.0 Object Library) 

'Excel Objects 
Dim ChartObj As ChartObject 

'Word Objects 
Dim WordApp As Word.Application 
Dim myDoc As Word.Document 
Dim WordTable As Word.Table 

'Optimize Code 
    Application.ScreenUpdating = False 
    Application.EnableEvents = False 



'Copy Chart from Excel 
    Set ChartObj = Worksheets("External Dashboard").ChartObjects("Chart 1") 

'Create an Instance of MS Word 
    On Error Resume Next 

    'Is MS Word already opened? 
     Set WordApp = GetObject(class:="Word.Application") 

    'Clear the error between errors 
     Err.Clear 

    'If MS Word is not already open then open MS Word 
     If WordApp Is Nothing Then Set WordApp = CreateObject(class:="Word.Application") 

    'Handle if the Word Application is not found 
     If Err.Number = 429 Then 
     MsgBox "Microsoft Word could not be found, aborting." 
     GoTo EndRoutine 
     End If 

    On Error GoTo 0 

'Make MS Word Visible and Active 
    WordApp.Visible = True 
    WordApp.Activate 

'Create a New Document 
    Set myDoc = WordApp.Documents.Add 

'Copy Excel Chart 
    ChartObj.Copy 

'Paste Chart into MS Word 
    myDoc.Paragraphs(1).Range.PasteSpecial Link:=False _ 

EndRoutine: 
'Optimize Code 
    Application.ScreenUpdating = True 
    Application.EnableEvents = True 

'Clear The Clipboard 
    Application.CutCopyMode = False 
End Sub 

나는 아마 내가 필요 이상을 포함했지만, 내가 말했듯이, 난 초보자.

+0

가 왜'ChartObj.CopyPicture xlScreen, xlPicture'와'myDoc.Paragraphs (1) .Range.PasteSpecial'를 시도? – omegastripes

+0

완벽한 !! 고맙습니다! 잘 했어. –

+0

답변을 답글로 게시했습니다. 도움이 될 경우 클릭하여 동의하십시오. – omegastripes

답변

0

사용 .CopyPicture.PasteSpecial 방법 :

Sub Copy_Paste_Report_1_Graph_to_new_word_document() 

    Dim ChartObj As ChartObject 
    Dim WordApp As Word.Application 
    Dim myDoc As Word.Document 

    Set ChartObj = Worksheets("External Dashboard").ChartObjects("Chart 1") 
    Set WordApp = CreateObject(class:="Word.Application") 
    WordApp.Visible = True 
    WordApp.Activate 
    Set myDoc = WordApp.Documents.Add 
    ChartObj.CopyPicture xlScreen, xlPicture 
    myDoc.Paragraphs(1).Range.PasteSpecial 

End Sub