VBA Excel - 保存为word文档不起作用

时间:2015-02-17 21:56:19

标签: excel vba excel-vba

有人请在我的笔记本电脑驶出窗外之前帮助我。我创建了一个Excel用户窗体,在输入所有内容后,从工作表上的一个单元格复制文本并将其粘贴到新的Word文档中。它工作得很漂亮,Word文档打开就像它应该将单元格的内容粘贴到其中。我可以手动保存打开的Word文档,但我希望文档以特定文件名保存到特定文件夹中,然后完全关闭Word。 SaveAs不适合我;我不知道自己做错了什么。

这是我的第一篇文章btw - 希望我能通过搜索找到答案,但经过几个小时的搜索和尝试不同的事情后,我放弃并发布了。如果我打破任何问题礼仪规则,我会提前道歉!

以下代码用于单击我的用户窗体上的按钮,在我复制要粘贴到Word中的单元格后立即剪切。 编辑:我改变了原来的问题,以反映我尝试了SaveAs2修复建议。我现在收到错误"无效或不合格的参考"。帮助

'copy to word
Dim objWord As New Word.Application
Dim objDoc As New Word.Document

'Copy the range I want to paste in new Word document
Range("M47").Copy

'Paste into the new Word document
With objWord
    .Documents.Add
    .Selection.Paste
    .Visible = True
End With

'****************WORKS FINE UP UNTIL THIS POINT.

'The document opens with the text I want in it.

'Creating the special filename
Dim strFilename     As String
Dim rngRange        As Range

'Cell in Excel Worksheet from where filename is to be picked (patient date    of birth)
Set rngRange = Worksheets("Scores").Range("D95")

'Create File name with DOB, 'PAI', & today's date
strFilename = rngRange.Value & "PAI" & Format(Now(), "mmddyyyy")

 .SaveAs2 Filename:=("C:\Users\Mary Anne\Google Drive\") & strFilename, _
FileFormat:=16

End Sub

1 个答案:

答案 0 :(得分:0)

您需要将使用该方法的对象引用到:

objDoc.SaveAs2 "C:\Users\Mary Anne\Google Drive\" & strFilename, 16

official doc

中详细了解SaveAs2方法

你做错了,实际上是在无对象上调用方法:

.SaveAs2 

我敢打赌,你已经从With块复制了这行代码,如下所示,所以我会解释你的意思:):

With objDoc '<-- "with the objDoc", we will...
'...        '<-- "do many stuffs, among them we will also..."
.SaveAs2    '<-- "save the objDoc as SaveAs2"
'...
End With

.SaveAs2表示先前在With块中调用了一个对象,它不能单独存在,否则会出现编译错误。