使用VBA

时间:2017-02-28 21:34:39

标签: ms-word word-vba filenames

通过从互联网上拼凑代码,我(几乎)解决了我的问题。我正在创建一个单词模板,在保存时会自动创建文件名。在文档中第一个表的第二个单元格中有一个引用字段,它将类似于:

P2457.0227178P1 

其中,前5个字符是案例参考,然后是句号或'句号',然后是6位数日期(MMddyy),然后是2位数后缀。

句点,日期和后缀由word自动创建,前缀由用户生成。

为了使其成为保存时的默认文件名,下面的代码使该单元格的内容成为文档标题。但问题是,在保存时,Word会在完全停止之前切断文档标题,因此它只提供前缀作为文件名而不是整个字符串。

有没有更好的方法,以便我可以将整个引用作为默认的保存文件名?

这段代码似乎做了我想要它做的事情,即它正确地设置了文档标题。问题是,当我想要保存文档时,Word不会将整个标题建议为文件名,只能到第一个标点符号...

Sub SaveAsFilename()
    Dim MyDocTitle As String
    Dim oDoc As Document
    Dim oRng As Range

    Set oDoc = ActiveDocument

    oDoc.Tables(1).Rows(1).Cells(2).Select

    Set oRng = Selection.Cells(1).Range.Paragraphs(1).Range
    oRng.End = oRng.Cells(1).Range.End - 1
    oRng.Select

    MyDocTitle = Selection.Text

    With Dialogs(wdDialogFileSummaryInfo)
        .Title = MyDocTitle
        .Execute
    End With

    Dialogs(wdDialogFileSaveAs).Show
End Sub

1 个答案:

答案 0 :(得分:1)

这样做:

With Dialogs(wdDialogFileSaveAs)
    .Name = MyDocTitle
    .Show
End With

希望有所帮助。