如何使用Excel宏将一段文字从Word复制到Excel?

如何使用Excel宏将一段文字从Word复制到Excel?,excel,vba,ms-word,excel-2007,Excel,Vba,Ms Word,Excel 2007,对于多个文档,我需要使用Excel宏将特定的文本项(一个或几个单词)从Word(2007)复制到Excel(2007) 到目前为止,我已经用Excel宏打开了每个Word文档,一次打开一个,并找到了与我需要的文档相邻的文本 我现在需要: 移动到字表中的相邻单元格。我在想wdApp.Selection.MoveLeft单元:=wdCell(或MoveRight),其中wdApp是Word.Application 复制单元格的内容。我在想wdApp.Selection.Copy和类似wdDoc.Wo

对于多个文档,我需要使用Excel宏将特定的文本项(一个或几个单词)从Word(2007)复制到Excel(2007)

到目前为止,我已经用Excel宏打开了每个Word文档,一次打开一个,并找到了与我需要的文档相邻的文本

我现在需要:

  • 移动到字表中的相邻单元格。我在想
    wdApp.Selection.MoveLeft单元:=wdCell
    (或
    MoveRight
    ),其中wdApp是
    Word.Application
  • 复制单元格的内容。我在想
    wdApp.Selection.Copy
    和类似
    wdDoc.Word.Range
    的东西,其中
    wdDoc
    Word.Document
    ,但我无法选择整个单元格内容
  • 将其粘贴到Excel中的变量中。在这里,我不知道如何将剪贴板复制到Excel变量

  • 更新显示搜索文本,然后选择与其位置相关的内容:

    Sub FindAndCopyNext()
    
        Dim TextToFind As String, TheContent As String
        Dim rng As Word.Range
    
        TextToFind = "wibble" 'the text you're looking for to
                              ' locate the other content
    
        Set rng = wdApp.ActiveDocument.Content
        rng.Find.Execute FindText:=TextToFind, Forward:=True
    
        If rng.Find.Found Then
            If rng.Information(wdWithInTable) Then
              TheContent = rng.Cells(1).Next.Range.Text      'move right on row
              'TheContent = rng.Cells(1).Previous.Range.Text 'move left on row
              MsgBox "Found content '" & TheContent & "'"
            End If
        Else
            MsgBox "Text '" & TextToFind & "' was not found!"
        End If
    
    End Sub
    

    然后将变量TheContent指定给所需的Excel范围

    您需要复制和粘贴吗?为什么不直接使用Selection.Text?@Tim-thx。我仍然无法将所选内容放入剪贴板。。。但这可能适用于第3步。谢谢。但是如何选择文档的某个部分?目前没有收到任何信息,因为我无法选择文本。我可以使用Range(Start:=0,End:=200)来获取前200个字符。要复制的文本总是在同一位置(例如在表中的同一位置)还是相对于其他文本的固定位置?后者。主要是直接在左边或右边的牢房里。偶尔在另一个单元格中,但始终在同一行中。所以我需要验证字符串。更新了我的答案,包括搜索文本以定位内容