2017-11-21 7 views
1

次のExcelコンテンツをワードドキュメントに変換したいと考えています。 新しい単語のレポートには、学生の名前、日付、件名、元の試験時間、新しい試験時間が含まれています。 enter image description here enter image description hereexcelから単語レポートを生成する方法は?

私はこれを行う簡単な方法を使用しようとしました。範囲(a79:L85)&の範囲(A90:L92)を新しい単語文書にコピーします。しかし、それは動作せず、2つのテーブルを一緒に(同じ行に)結合します。

Sub ExcelRangeToWord() 

'PURPOSE: Copy/Paste An Excel Table Into a New Word Document 
'NOTE: Must have Word Object Library Active in Order to Run _ 
    (VBE > Tools > References > Microsoft Word 12.0 Object Library) 
'SOURCE: www.TheSpreadsheetGuru.com 

Dim tbl As Excel.RANGE 
Dim tbl2 As Excel.RANGE 
Dim WordApp As Word.Application 
Dim myDoc As Word.Document 
Dim WordTable As Word.Table 

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

'Copy Range from Excel 
    Set tbl = ThisWorkbook.Worksheets(sheet9.Name).RANGE("A79:L85") 'copy the name ,subject and old exam time 
    Set tbl2 = ThisWorkbook.Worksheets(sheet99.Name).RANGE("A90:L92")'copy the new exam time 
'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 Table Range 
    tbl.Copy ' paste range1 
    tbl2.Copy 'paste range2 

'Paste Table into MS Word 
    myDoc.Paragraphs(1).RANGE.PasteExcelTable _ 
    LinkedToExcel:=False, _ 
    WordFormatting:=False, _ 
    RTF:=False 

'Autofit Table so it fits inside Word Document 
    Set WordTable = myDoc.Tables(1) 
    WordTable.AutoFitBehavior (wdAutoFitWindow) 

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

'Clear The Clipboard 
    Application.CutCopyMode = False 

End Sub 

どのようなヒントや方法でも、このような語句レポートを生成できますか?

+0

出力が必要で、これを演習として行っていない場合は、差し込み印刷がより簡単になり、はるかに高速に実行されます。 –

+0

@MihaiOvidiuDrăgoiしかし、私はExcelを使って新しい時間を計算しなければなりません。そして個々の文書は単語でなければなりません。差し込み印刷でこれを実行できますか?リファレンスリンク? – Vito

答えて

0

これは、1つのテーブルを次々とコピー&ペーストする方法を説明するソリューションの一部に過ぎません。

+0

あなたのコードを使用すると、2つの異なるテーブルが生成されます。フォーマットが矛盾します(カラムは同じフォーマットではありません)。また、いくつかのワードサイズは2行になります。最後に、元のExcelファイルからフォントの位置(中央)を継承することはできません。どのように改善する? – Vito

+0

このようになります。 https://ibb.co/fqmVXm – Vito

+0

1つのテーブルにする方が良いです。そして、それは元のExcelファイルからフォーマットを継承する方が良いです。また、セルのスペースは、単語の長さに合わせる必要があります。それを修正するためのアイデアはありますか? – Vito

関連する問題