2014-01-24 2 views
2

사용자가 내보낼 PDF 파일의 경로와 파일 이름을 선택하게하십시오.Application.FileDialog (msoFileDialogSaveAs) with .pdf with Filter

나는 다른 이름으로 저장 대화 상자를 표시합니다 아래 만들었습니다

Sub Test3() 

    Set myFile = Application.FileDialog(msoFileDialogSaveAs) 
    With myFile 
    .Title = "Choose File" 
    .AllowMultiSelect = False 
    .ButtonName = "&Save As" 
    .initialFilename = "Export" 
    .Title = "Save PDF as" 
    If .Show <> -1 Then 
    MsgBox "You have cancelled" 
    Exit Sub 
    End If 
    FileSelected = .SelectedItems(1) 
    End With 


    End Sub 

FileSelected의 값은 나중에 PDF 내보내기 코드로 공급된다.

위의 파일 저장 대화 상자에 필터를 추가하여 PDF를 파일 저장 유형으로 만 표시하려고합니다.

는 현재 FileSelected의 값이 될 수있을 테니까요 : 나는 PDF 내보내기로 공급하는 경우. "드라이브 문자/폴더/이름 XLSM"그래서 XLSM 확장자를 가진 PDF 파일을 저장합니다.

많은 행운없이 .Filter.Clear을 시도한 다음 .Filters.Add을 시도했습니다.

도움이 될 것입니다!

답변

11

나는 그것을 알아 낸 신경 쓰지 :

Sub Test3() 

On Error Resume Next 
Dim FileSelected As String 

FileSelected = Application.GetSaveAsFilename(initialFilename:="Export", _ 
             FileFilter:="PDF Files (*.pdf), *.pdf", _ 
             Title:="Save PDF as") 
If Not FileSelected <> "False" Then 
MsgBox "You have cancelled" 
Exit Sub 
End If 

If FileSelected <> "False" Then 
MsgBox FileSelected 'where FileSelected is what I will be 
        'later feeding into the PDF Export Code 
Exit Sub 
End If 

End Sub 
1

나는 파일 형식을 통해 실행하고 내가 원하는 하나를 선택하는 옵션 목록에서 루프를 추가했다. 그것의 결함이 있지만 작동 ...

For I = 1 To .Filters.Count 
    fName = .Filters(I).Description 
    If fName = "PDF" Then 
     .FilterIndex = I 
     Exit For 
    End If 
Next