2011-10-25 2 views
0

현재 매크로를 통해 Excel에서 Word로 많은 다이어그램을 복사하고 있습니다. 나는 다음과 같은 코드를 생성하는 나에게 도움을 준 매크로 기록 기능을 사용 :엑셀에서 워드 - 비 결정적 행동으로 차트 복사

Set charts = Sheets("Charts").ChartObjects 
For Each chart In charts 
    WordApplication.Selection.TypeParagraph 
    WordApplication.ActiveDocument.Tables.Add Range:=WordApplication.Selection.Range, NumRows:=2, NumColumns:= _ 
     1, DefaultTableBehavior:=wdWord9TableBehavior, AutoFitBehavior:= _ 
     wdAutoFitFixed 
    With WordApplication.Selection.Tables(1) 
     If .Style <> "Table Grid" Then 
      .Style = "Table Grid" 
     End If 
     .ApplyStyleHeadingRows = True 
     .ApplyStyleLastRow = False 
     .ApplyStyleFirstColumn = True 
     .ApplyStyleLastColumn = False 
     .ApplyStyleRowBands = True 
     .ApplyStyleColumnBands = False 
    End With 
    WordApplication.Selection.ParagraphFormat.Alignment = wdAlignParagraphCenter 
    chart.Copy 
    WordApplication.Selection.Paste 


    WordApplication.Selection.MoveLeft Unit:=wdCharacter, Count:=1, Extend:=wdExtend 
    ' configure the shape (resizing) 
    WordApplication.Selection.MoveDown Unit:=wdLine, Count:=2 
Next 

그래서, 반품을 넣어 2 행에 테이블을 추가하고 센터에 첫 번째 행을 정렬한다 무엇. 그런 다음 Excel에서 복사하여 Word에 붙여 넣어 차트를 추가하십시오. (MoveLeft 명령을 통해) 모양을 선택하고 (제거한) 모양을 수정하고 마지막으로 2 단계 아래로 이동하여 모든 차트를 다시 실행합니다.

내가 F8을 사용하여 단계를 거치면 내가 원하는 결과를 얻을 수 있습니다. 난 그냥 할 경우, 내가 예를 들어, 다른 결과 모든 시간을 볼 실행

  • 선택도
  • 이 모양은 여전히 ​​MoveDown 명령 다음에 선택되어 MoveDown 명령 후 테이블에 남아
  • 런타임 오류 '4605': 개체가 테이블 행의 끝을 참조하기 때문에 개체를 이동할 수 없기 때문에이 메서드 나 속성을 사용할 수 없습니다.
  • 올바른 결과

내 질문 :
매크로를 수동으로 수행하지 않고도 작동되게하려면 어떻게해야합니까?

Windows XP, Excel 2007 (12.0.65.62.5003)을 사용 중입니다. 이 문제는 Windows 7에서도 동일하게 작동하지 않습니다 (Windows Vista에서는 테스트되지 않음).

답변

1

마지막 줄이 삽입 한 표를 항상 떠나는 것은 아니었던 것 같습니다. 이

Do Until Not WordApplication.Selection.Information(wdWithInTable) 
    WordApplication.Selection.MoveRight Unit:=wdCharacter, Count:=1 
Loop 

WordApplication.Selection.MoveDown Unit:=wdLine, Count:=2 

그리고 지금은

+0

좋은 정상적으로 작동 : 나는 다음과 같은 라인을 교체! 그래서 당신은 그것으로 끝납니다 – niko

+0

네, 좋은 riddance : D는 이것을 2 일 안에 받아 들일 것으로 표시합니다. – Default

관련 문제