埋め込みWord文書のいくつかのフィールドをいくつかのセルにリンクしています。PrintOut
マクロ、For..Next
ループWord文書がExcel VBAから閉じられていることを確認してください
各印刷タスクの後に、プログラムがドキュメントを閉じてから次の印刷を行うまで待つ必要があります。
この場合、エラーが発生します。誰も助けることができますか?
Sub contract()
Dim i As Integer
For i = 1 To 100
Cells(Sheets("SheetName").ListObjects("StaffInfo").ListRows.Count + 9, 8).Value = i
General.PrintIt ("EmbeddedDoc") 'Doc has many linked fields
Next i
End Sub
印刷方法
Sub PrintIt(P As String)
Dim objWord As Object
Dim ObjDoc As Object
Dim Oshp As Object
Application.ScreenUpdating = False
ActiveSheet.OLEObjects(P).Activate
Set objWord = GetObject(, "Word.Application")
objWord.Visible = False
Set ObjDoc = objWord.ActiveDocument
ObjDoc.Fields.Update
For Each Oshp In ObjDoc.Content.ShapeRange
Oshp.TextFrame.TextRange.Fields.Update
Next
ObjDoc.PrintOut Background:=False
ObjDoc.PrintOut
objWord.Quit SaveChanges:=False
Application.ScreenUpdating = True
End Sub 'Print it
どのようなエラーが表示されますか?そして、どのラインでそれを手に入れますか? – YowE3K
'DoEvents'を' objWord.Quit SaveChanges:= False'の後ろに追加するとどうなりますか –
エラー:実行時エラー '5479:ダイアログボックスが開いているため、Microsoft Wordを閉じることができません。 [OK]をクリックし、単語に切り替えて、ダイアログボックスを閉じます。その後、このエラーが表示されます。Microsoft Wordに問題が発生したため、終了する必要があります。 ...エラーレポートを送信し、送信しないでください。 Wordウィンドウを閉じます。 Excelは開いており、この行はエラーとして表示されます:VBAでは 'ObjDoc.PrintOut Background:= False'です。 – mgae2m