>source

사용자가 템플릿을 작성한 다음 .XLSM 및 PDF로 저장하는 VBA가 있습니다.

.XLSM은 전체 통합 문서로 저장되지만 PDF는 2개의 워크시트에 불과합니다. 두 파일 모두 통합 문서의 변수 셀 이름을 따서 명명되었으며 파일 위치가 제안되지만 사용자가 변경할 수 있습니다.

사용자가 기존 파일을 덮어쓰고 있다는 경고를 받을 때까지 모든 것이 작동합니다. "아니오" 또는 "취소"를 선택하면 오류가 발생합니다. 이상적으로는 하위 항목이 종료되고 PDF 또는 .XLSM이 저장되지 않기를 바랍니다. On Error를 시도했지만 전체 작업을 수행할 수 없습니다. 다른 솔루션은 일부 기능(가변 파일 이름, 다른 시트 인쇄/저장, 초기 파일 위치 등)을 제거하는 것 같습니다.

누군가 도움을 줄 수 있는 경우 아래에 내 code가 있습니다.

Sub SaveToPDF2()
Dim strFilename     As String
Dim rngRange        As Range
Dim fileSave As FileDialog
Set fileSave= Application.FileDialog(msoFileDialogSaveAs)
'Considering Sheet1 to be where you need to pick file name
Set rngRange= Worksheets("template").Range("b3")
'Create File name with dateStamp
strFilename= rngRange.Value &
 ".process." &
 Format(Date, "mm.dd.yyyy")
With fileSave
' Your default save location here
    .InitialFileName= "U:\221 Released Drawings\" &
 strFilename
    If .Show= -1 Then
ActiveWorkbook.SaveAs filename:=strFilename &
 ".xlsm", FileFormat:=52
ThisWorkbook.Sheets(Array("process", "signoff")).Select
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, _
filename:=strFilename _
    , Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas _
    :=False, OpenAfterPublish:=True
Else: Exit Sub
    End If
End With
End Sub

  • 답변 # 1

    바로 앞에 다음 code 줄을 삽입해 보십시오.파일저장으로:

    If Dir(strFilename &
     ".xlsm") <> "" then Exit Sub
    

    이러한 파일이 이미 존재하는 경우 위에 삽입된 code에서 종료됩니다. 라인...

  • 이전 mongodb : Mongo 128비트 Decimal to Go 디코딩
  • 다음 javascript : 내 gloval setInterval ID 변수를 함수에서 사용할 수 없는 이유는 무엇입니까?