2017-08-16 106 views
0

当试图保存一个新的以编程方式创建.docx时,我不断地在saveas,saveas2或保存调用时“命令失败”。我知道该文件正在创建。离线工作正常。 的Visual Studio 2013 的Microsoft.Office.Interop.Word 15 的Microsoft Office 10服务器和开发机 测试代码:Microsoft.Office.Interop.Word saveas2并保存使用vb.net获取命令失败

myInfo_lbl.Text = "" 
Dim word As New Microsoft.Office.Interop.Word.Application 
word.Visible = True 
Dim doc As Microsoft.Office.Interop.Word.Document 
doc = word.Documents.Add() 
Try 
    Dim insertText As String = "This thing needs to start fn working. Damn it!" 
Dim range As Microsoft.Office.Interop.Word.Range = doc.Range(Start:=0, End:=0) 
range.Text = insertText 
doc.SaveAs2("D:\myCVCOL_Files\test2.doc") 
'doc.Save() 
'doc.SaveAs2("D:\myCVCOL_Files\test2.doc") 
Catch ex As COMException 
    myInfo_lbl.Text = ex.ErrorCode & " ~ " & ex.HResult & " ~ " & ex.Message & " ~ try 6" 
Finally 
    Dim save_changes As Object = False 
    doc.Close(save_changes) 
    word.Quit(save_changes) 
End Try 

回答

0

貌似你没有设置的格式。试试这个代码

Imports System.Runtime.InteropServices 

Module Module1 

    Sub Main() 
     CreateDoc() 
    End Sub 

    Public Sub CreateDoc() 
     Dim wordApp As New Microsoft.Office.Interop.Word.Application 
     Dim wordDoc As Microsoft.Office.Interop.Word.Document 
     Dim range As Microsoft.Office.Interop.Word.Range 
     Dim fileName As String 
     Dim insertText As String 

     Dim format As Microsoft.Office.Interop.Word.WdSaveFormat = Microsoft.Office.Interop.Word.WdSaveFormat.wdFormatDocument 

     wordApp = New Microsoft.Office.Interop.Word.Application() 
     wordDoc = New Microsoft.Office.Interop.Word.Document() 
     insertText = "Some text" 

     wordApp.Visible = True 

     fileName = "D:\Projects\Sandbox\StackOverflow\ConsoleVB\test2.doc" 

     wordDoc = wordApp.Documents.Add() 

     range = wordDoc.Range(Start:=0, End:=0) 
     range.Text = insertText 

     wordDoc.SaveAs2(fileName, Format) 

     wordDoc.Close(Nothing, Nothing, Nothing) 
     wordDoc = Nothing 
     wordApp = Nothing 

    End Sub 
End Module 
+0

谢谢你的回复,但我仍然收到错误。我越是混淆了这一点,就越觉得它是服务器上的设置,iis或word。 – rtFord

0

我发现我的问题的解决方案,我正在寻找2天是在Word中的设置。 找到它的位置:https://social.msdn.microsoft.com/Forums/vstudio/en-US/53a0aa18-5f26-4a51-95c8-5c0ff9be28f4/command-failed-at-microsoftofficeinteropworddocumentclasssaveas?forum=vsto

“我之前遇到过这个问题,我瞪大眼睛了两天,最后我发现,去运行命令DCOMCNFG.EXE或去组件服务的话,你必须选择DCOM配置和解决方案选择Microsoft Word并获取它的属性,并以标识选项卡选择交互式用户而不是启动用户。“