提问人:Sidvi 提问时间:11/7/2017 最后编辑:CommunitySidvi 更新时间:11/7/2017 访问量:272
第二次运行宏时出现错误代码 462
Error code 462 when running macro second time
问:
当我尝试第二次运行我的代码时,我不断收到错误代码 462。该代码应该使用来自 excel 的数据创建一个 word 文档,然后提示用户保存该文档。正是代码的保存部分给出了错误。
代码如下:
Sub ExportToWord()
Dim WordApp As Word.Application
Dim myDoc As Word.Document
Dim WordTable As Word.Table
Dim SrcePath As String
Range("G3:J29").Copy
'Create an Instance of MS Word
On Error Resume Next
'Is MS Word already opened?
Set WordApp = GetObject(class:="Word.Application")
'Clear the error between errors
Err.Clear
'If MS Word is not already open then open MS Word
If WordApp Is Nothing Then Set WordApp = CreateObject(class:="Word.Application")
'Handle if the Word Application is not found
If Err.Number = 429 Then
MsgBox "Microsoft Word could not be found, aborting."
GoTo EndRoutine
End If
On Error GoTo 0
'Make MS Word Visible and Active
WordApp.Visible = True
WordApp.Activate
'Create a New Document
Set myDoc = WordApp.Documents.Add
'Paste Table into MS Word
myDoc.Paragraphs(1).Range.PasteExcelTable _
LinkedToExcel:=False, _
WordFormatting:=False, _
RTF:=False
'Autofit Table so it fits inside Word Document
Set WordTable = myDoc.Tables(1)
WordTable.AutoFitBehavior (wdAutoFitWindow)
'Insert Header logo
SrcePath = "C:\Users\SIDVI\Pictures\logo.gif"
myDoc.Sections.Item(1).Headers(wdHeaderFooterPrimary) _
.Range.InlineShapes.AddPicture (SrcePath)
'Prompts users to save document
Documents.Save NoPrompt:=False
If Err.Number = 462 Then
GoTo EndRoutine
End If
EndRoutine:
'Optimize Code
Application.ScreenUpdating = True
Application.EnableEvents = True
'Clear The Clipboard
Application.CutCopyMode = False
End Sub
我试图让它忽略错误消息,说去内露丁,但这也不起作用。
答:
0赞
Vityata
11/7/2017
#1
尝试删除以下内容:
'Is MS Word already opened?
Set WordApp = GetObject(class:="Word.Application")
只留下这个:
If WordApp Is Nothing Then Set WordApp = CreateObject(class:="Word.Application")
这里有人有同样的问题。
评论
0赞
Sidvi
11/7/2017
现在我收到一个没有文本的错误,只有一个红色的停车标志。
0赞
Vityata
11/7/2017
@SIDVI - 奇怪,然后写在模块的顶部,去看看编译时发生了什么。然后尝试修复它,直到您能够编译为止。Option Explicit
Debug>Compile
0赞
Sidvi
11/7/2017
谢谢你的尝试,我会继续努力解决。
2赞
Rory
11/7/2017
#2
Documents.Save
应该是 。否则,您将使用一个非限定对象变量,该变量将创建对 Word 对象的孤立引用。在重新运行代码之前,还需要确保关闭正在运行的任何隐藏的 Winword 进程。myDoc.Save
评论
0赞
Sidvi
11/7/2017
我的想法也是,但是当我这样做时,我得到了编译错误。“参数数错误或属性分配无效”
1赞
danieltakeshi
11/7/2017
和?WordApp.Documents.Save
0赞
Sidvi
11/7/2017
做到了!谢谢!
0赞
Rory
11/7/2017
只是之后什么都没有。myDoc.Save
评论
WordApp.Documents.Save NoPrompt:=False