2013-03-19 1 views
0

저는 포럼에 처음 왔으며 기쁜 마음으로 참여하게되었습니다. 나는 약 3 주 동안이 특별한 문제를 겪어왔다.VB 매크로가 활성 문서를 셀 이름과 함께 PDF로 저장하는 데 우수합니다.

내가하려는 것은 나를위한 기능을 자동화하는 매크로를 만드는 것입니다. 나는 많은 시간의 계약을 처리해야하고 각 .doc에 대한 정보 (예 : 이름, 주소 및 ID 번호)를 PDF로 저장하는 것보다 시간이 오래 걸린다. 그래서 나는 automaticaly가 .doc에 저장하는 정보를 입력 할 수있는 Excel 테이블을 만들려고합니다.이 복사 + 붙여 넣기는 특수 붙여 넣기 기능으로 수행됩니다 (Excel에서 변경하면 .doc이 변경되므로 전체 계약서에 입력 할 때 공란으로 채워지는 일부 공백이 입력 됨).

적절한 정보로 Excel에서 셀을 채운 후에 셀 중 하나의 정보 (이 경우 특정 회사 이름이 입력 된 곳)에서 PDF로 해당 문서를 "저장"해야합니다. , 그 때 회사의 이름 (.doc가 저장 한 동일한 세포)을 가질 새로운 탭으로 테이블을 능가하는 사본이 필요합니다.

이것은 내가 지금까지 무엇을 가지고 :

Sub Autocontratos() 

Set appWD = CreateObject("Word.Application") 
appWD.Visible = True 

appWD.Documents.Open Filename:="C:\Users\lguimaraes\Dropbox\Trabalho em equipe\Laurence\Contracts.docx" 

appWD.ActiveDocument.SaveAs Filename:= _ 
    ThisWorkbook.Path & "/" & "Contratos" & Range("C2").pdf, ExportFormat:= _ 
    wdExportFormatPDF, OpenAfterExport:=True, OptimizeFor:= _ 
    wdExportOptimizeForPrint, Range:=wdExportAllDocument, From:=1, To:=1, _ 
    Item:=wdExportDocumentContent, IncludeDocProps:=True, KeepIRM:=True, _ 
    CreateBookmarks:=wdExportCreateNoBookmarks, DocStructureTags:=True, _ 
    BitmapMissingFonts:=True, UseISO19005_1:=False 
    ChangeFileOpenDirectory "C:\Users\lguimaraes\Dropbox\Trabalho em equipe\Laurence\Contratos" 

appWD.ActiveDocument.Close 
appWD.Quit 

End Sub 
+0

귀하의 아이디어를 설명해 주셨습니다. 호기심은 우리가 당신을 도울 수있는 문제를 묘사합니다. –

+0

안녕하세요 Kaz, 미안하거나 내 poblem을 배치하지. 문제는 위의 프로그램을 실행하면 실행 시간 오류 438이 표시된다는 것입니다. 개체가 속성이나 메서드를 허용하지 않습니다. _appWD.ActiveDocument.SaveAs Filename_ –

+0

appWD를 제거하면이 섹션의 모든 내용을 다 설명합니다. _appWD.ActiveDocument.SaveAs Filename_에 오류가 있음을 나타내는 것보다 _Compilation 오류, 명명 된 인수를 찾지 못했습니다 _ –

답변

1

봅니다에 문제 라인의 시작을 변경 :

appWD.ActiveDocument.ExportAsFixedFormat Filename:= _ 
    ThisWorkbook.Path & "\" & "Contratos" & Range("C2") & ".pdf", ExportFormat:= _ 

과 다른 부분을 동일하게 유지. 코멘트 후

편집 :

appWD.ActiveDocument.SaveAs _ 
ThisWorkbook.Path & "\" & "Contratos" & Range("C2") & ".pdf", FileFormat:=17 

이 시간 대신 복잡한 '.SaveAs` 방법의 새로운 명령을 사용하려고 : 다시 방법'으로 저장 '을하려고 다음에보다

.

+0

안녕 KazJaw. 내가 변경했지만 동일한 런타임 오류 438이 발생했습니다. –

+0

새로운 제안서를 살펴보십시오. –