Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/15.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
用excelvba解析Word文档的全部内容_Vba_Excel_Ms Word - Fatal编程技术网

用excelvba解析Word文档的全部内容

用excelvba解析Word文档的全部内容,vba,excel,ms-word,Vba,Excel,Ms Word,我想编写一个通用方法,通过循环段落和形状来提取从word文档到文本文件的所有内容 我能够使用下面的代码解析90%的文档。然而,这段代码并不是从几个表中读取内容 Set objWordApp = CreateObject("Word.Application") objWordApp.Visible = False Set objWordDoc = objWordApp.Documents.Open(strWordDocPath) Set objFso = CreateObject("Script

我想编写一个通用方法,通过循环段落和形状来提取从word文档到文本文件的所有内容

我能够使用下面的代码解析90%的文档。然而,这段代码并不是从几个表中读取内容

Set objWordApp = CreateObject("Word.Application")
objWordApp.Visible = False
Set objWordDoc = objWordApp.Documents.Open(strWordDocPath)

Set objFso = CreateObject("Scripting.FileSystemObject")
Set oFile = objFso.createTextFile(strTextFilePath)
Set colParagraphs = objWordDoc.Paragraphs


For Each objParagraph In colParagraphs
    lineText =Trim(objParagraph.Range.Text)
    If lineText <> "" Then
       oFile.Write lineText & vbCrLf
    end if
next
Set objWordApp=CreateObject(“Word.Application”)
objWordApp.Visible=False
设置objWordDoc=objWordApp.Documents.Open(strWordDocPath)
设置objFso=CreateObject(“Scripting.FileSystemObject”)
文件集=objFso.createTextFile(strTextFilePath)
Set colparations=objWordDoc.parations
对于COLJParagraph中的每个objParagraph
lineText=Trim(objParagraph.Range.Text)
如果是lineText“”,则
oFile.Write lineText&vbCrLf
如果结束
下一个
我无法从MS word文档中提取表格中的少量文本。这个问题只涉及一些文本和表格,我能够使用我的代码阅读文档中的大部分内容

Word文档出现在下面的链接中-

主要问题是解析文档中的第一个表。此文档由应用程序生成,我无法控制内容的格式

有人能帮我阅读附件中的完整内容吗?

这里有一条线索给你:

Sub test()
    Dim tCel As Cell, cellText As String

    For Each tCel In ActiveDocument.Shapes(1).TextFrame.TextRange.Tables(1).Range.Cells
        cellText = Trim(tCel.Range.Text)
        Debug.Print cellText
    Next
End Sub

? activedocument.Tables.Count 0?activedocument.Shapes.Count 3?activedocument.Shapes(1).名称文本框153?activedocument.Shapes(2).名称组151?activedocument.Shapes(3).名称组149?activedocument.Shapes(1).AlternativeText>文本框:ISDN为您提供语音和数据的集成数字访问?Activedocument.Shapes(1).TextFrame.TextRange.Tables(1).Cell(1,1).Range.Text>ISDN为您提供对语音和数据网络的集成数字访问。它由一个数字传输电路组成,位于您所在地的NT1和本地ISDN交换机之间。谢谢WinterKnell。我现在能够读取单元格值。但挑战是编写一个通用方法,通过循环段落和形状来提取从word文档到文本文件的所有内容。我不确定如何做。有帮助吗非常感谢。没有100%的通用方法。任何合理全面的解决方案都将是这样一种技术的混搭,即使你能解释屏幕上的每一个字,你也永远不会绝对确定你已经把一个文档吸干了。文本将隐藏在图元文件中,作为表单中的替代段落、注释、审阅更正,甚至在vba中也是如此:(