【问题标题】:Copy rows of text preceding a table in word using VBA使用VBA在word中复制表格前面的文本行
【发布时间】:2020-08-24 23:06:39
【问题描述】:

我正在使用 VBA 处理 Excel 和 Word。在 Excel 中,我有一个宏,可以使用宏从特定的 word 文件中复制所有表格。它实际上工作得很好。但是,现在我正在尝试复制表格的前 10 行文本,因为这些行可以包含有关表格内容的有用信息。 我试图找到一种方法来获取表格的位置或从给定位置(行、列……)复制文本,但我什么也没找到。

我从word文档中获取所有表格的功能如下:

Private Function GetlisteTables(doc As Object) As Collection

    Dim tableau As Object
    Dim listeTableaux As New Collection

    For Each tableau In doc.Tables
        If tableau.Columns.Count > 4 Then

            On Error Resume Next
            listeTableaux.Add tableau
            
        End If
    Next tableau
    
    Set GetlisteTables = listeTableaux

End Function

虽然我可以在我的桌子上使用 .Range ,但这实际上给了我表格的内容,我认为它对我的情况没有用。 有没有什么方法可以帮助我使用 VBA 在 word 文档中复制文本的特定部分(尤其是在表格之前)?

【问题讨论】:

    标签: excel vba ms-word


    【解决方案1】:

    Paragraph对象有一个Previous方法,可以按指定返回上一个单元。

    因此可以使用以下方法找到上一段到表格的开始和结束字符位置:

    With ActiveDocument.Tables(1).Range.Previous(Unit:=wdParagraph)
    MsgBox .Start & ":" & .End
    End With
    

    参考:

    【讨论】:

    • 感谢您的提示。我只想注意到它适用于 vba Word 而不是 Excel 宏。我可能会做一个由两部分组成的宏,一个在 Word 中使用您提到的 Paragraph 对象来提取我正在寻找的文本,而我在 Excel 中的主要宏将使用我从 Word 中获得的内容。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-02-25
    • 1970-01-01
    • 2011-11-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多