Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
VBA文档。打开名称=始终";文件1“;_Vba_Ms Word - Fatal编程技术网

VBA文档。打开名称=始终";文件1“;

VBA文档。打开名称=始终";文件1“;,vba,ms-word,Vba,Ms Word,我试图通过Documents.open字符串打开word.docm文件。它可以工作并打开文件,但在WordHandle.Documents(x)中。名称始终为“Document1”。打开的文档也被命名为“Document1” 我做错了什么 Sub FileOpen(ByVal fileName As String) If Not gb_WordObjSet Then Exit Sub End If If Not FileExists(fileNam

我试图通过Documents.open字符串打开word.docm文件。它可以工作并打开文件,但在WordHandle.Documents(x)中。名称始终为“Document1”。打开的文档也被命名为“Document1”

我做错了什么

Sub FileOpen(ByVal fileName As String)
    If Not gb_WordObjSet Then
           Exit Sub
    End If

    If Not FileExists(fileName) Then
        Exit Sub
    End If

    With gh_WordObject
        .Documents.Open fileName:=fileName, OpenAndRepair:=True

        With .ActiveWindow.View
            .Type = 3
            .ShowAll = True
        End With
    End With
End Sub
文件名,例如=“C:\temp\20150702161254.docm”

gh_WordObject的初始化如下

Set gh_WordObject = CreateObject("Application.Word")

这与使用“打开并修复选项”在Word中手动打开文档时看到的行为相同。要查看此内容,请转到“文件打开”对话框中的“选择您的文档”,然后单击“打开”旁边的下拉箭头并选择“打开并修复”。这将基于原始文档创建一个新文档

要正常打开文档,请删除OpenAndRepair参数:

gh_WordObject.Documents.Open FileName:=s_DokFileName 
或者将其设置为False:

gh_WordObject.Documents.Open FileName:=s_DokFileName, OpenAndRepair:=False

我们可以看一下您的其余代码吗?如何初始化
gh_WordObjSet
?谢谢它的工作!有时但很少生成的word对象会损坏。OpenAndRepair解决了这个问题。你知道为什么会发生这种腐败的共同来源吗?我必须调试大量代码=/.@Megamind-如果您仅通过Word对象模型访问文档(而不是直接操作文件),那么损坏不太可能是由您在代码中所做的任何操作造成的。如果您在使用特定模板时经常看到损坏,则可能表明该模板已损坏。@Megamind如果您希望能够处理存在损坏文档的情况,我将检查这是否会导致Open方法返回错误。如果是这样的话,您可以包含一些错误处理,以便在错误发生时尝试使用OpenAndRepair选项打开文档。