2015-11-03 92 views
-1

我有一点词汇vba代码来简化我的工作流程。其中的一部分是安全的模板文件到子文件夹结构深处的特定文件位置。vba word wdDialogFileSaveAs不保存

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格式保存一个预期的文件,但这个词一个不...我已经尝试了一些不同的选项,并使用手动保存为提示的错误...兼容性的东西。

回答

0

我真的很惊讶,保存为PDF格式的作品...您使用.Display将对话框呈现给用户。显示不会执行用户选择的对话框动作:如果他单击保存该命令将不会执行。显示仅显示对话框,用户操作将改变对话框的状态。状态可以在事后阅读,并且您自己的代码需要进行保存。

如果你希望对话框做用户选择你需要使用.Show方法:如果.Show则...

+0

辛迪,感谢的工作!它有点奇怪的构造,但我到了那里。 – user2815681

+0

是的,Word对话框背后的功能可追溯到20年前的旧WordBasic日子。所以他们绝对是怪兽! –