vba word wdDialogFileSaveAs不保存

时间:2015-11-03 11:36:14

标签: vba pdf ms-word word-vba

我有一些单词vba代码来简化我的工作流程。部分是安全的模板文件到子文件夹结构深处的特定文件位置。

Function saveFile(fileType As String)
    Dim strFileName As String
    Dim StrPath As String
    Dim instance As WdSaveFormat
    Dim format As String

    'provide a file type
    format = fileType

    'provide default filename
    docname = ActiveDocument.Tables(1).cell(2, 1).Range.Text
    saveName = Left(docname, Len(docname) - 2)

    'provide a path
    projectnumber = ActiveDocument.Tables(1).cell(11, 3).Range.Text
    projectnum = Left(projectnumber, Len(projectnumber) - 2)
    projecttop = Left(projectnumber, Len(projectnumber) - 4)
    pathFull = "H:\Projecten\P0" & projecttop & "00 - P0" & projecttop & "99\P0" & projectnum & "\2 - Bedrijfsbureau\2.Berekeningen\2.2 Berekeningen voorlopig\"

    'provide a revision
    If ActiveDocument.Tables(2).cell(2, 2).Range.Text = Chr(13) & Chr(7) Then
        MsgBox ("Er is niets ingevult?")
    ElseIf ActiveDocument.Tables(2).cell(3, 2).Range.Text = Chr(13) & Chr(7) Then
        revLet = ""
    ElseIf ActiveDocument.Tables(2).cell(4, 2).Range.Text = Chr(13) & Chr(7) Then
        revLet = "_A"
    ElseIf ActiveDocument.Tables(2).cell(5, 2).Range.Text = Chr(13) & Chr(7) Then
        revLet = "_B"
    ElseIf ActiveDocument.Tables(2).cell(6, 2).Range.Text = Chr(13) & Chr(7) Then
        revLet = "_C"
    Else
        revLet = "_D"
    End If

    'concat path
    StrPath = pathFull & saveName & revLet

    With Dialogs(wdDialogFileSaveAs)
        .Name = StrPath
        .format = format
        If .Display <> 0 Then
            strFileName = .Name
        Else
            strFileName = "User Cancelled"
        End If
    End With
End Function

and calling the funcion

    Private Sub CommandButton19_Click()
    'wdFormatXMLDocument => docx wdFormatDocument => doc wdFormatPDF => pdf
    Call saveFile(wdFormatXMLDocumentMacroEnabled)
End Sub

Private Sub CommandButton20_Click()
    'wdFormatXMLDocument => docx wdFormatDocument => doc wdFormatPDF => pdf
    Call saveFile(wdFormatPDF)
End Sub

pdf one按预期保存文件,但是单词one没有...我尝试了一些不同的选项并手动使用save as prompt an error ...具有兼容性的东西。

1 个答案:

答案 0 :(得分:0)

我实际上在PDF工作时感到惊讶...您使用.Display向用户显示对话框。显示将不执行用户选择的对话框操作:如果他单击“保存”,则不会执行该命令。显示仅显示对话框,用户操作将更改对话框状态。事后可以读取状态,您自己的代码需要进行保存。

如果您希望对话框执行用户选择的操作,则需要使用.Show方法:如果.Show然后...