簡體   English   中英

將數據從 MS Word 移動到 Excel

[英]Move data from MS Word to Excel

我有一個包含 400 道選擇題的 Microsoft Word 文檔。 我需要將所有這些文本放入 Microsoft Excel 圖表中,我認為如果我能夠擁有一個允許我選擇所有以a.開頭的文本的宏會容易得多a. 並在a.之后的第一個段落對象處結束該部分a. .

我嘗試尋求幫助並被告知使用下面的宏,但該宏沒有做任何事情。 我只希望宏只選擇所有文本。 如果我要在 Microsoft Word 中手動執行此操作,我會按住ctrl並突出顯示所有以a.開頭的文本a. 並在第一個段落對象處結束。

 Sub Aselection()
'
' Aselection Macro
'

Dim pgh As Paragraph
For Each pgh In ThisDocument.Paragraphs
With pgh
If Left(.Range.Text, 2) = "a." And Left(Right(.Range.Text, 3), 2) = "a." Then
Debug.Print .Range.Text
End If
End With
Next

End Sub

ThisDocument通常是指包含執行代碼的模板文檔。 請改用ActiveDocument

同樣正如@assylias 在他的評論中所說, Debug.Print僅用於代碼調試目的。 .Range.Select替換整行。

這應該有效:

Sub Aselection()

    Dim o As Object
    Dim pgh As Paragraph

    Set o = CreateObject("excel.application")
    o.workbooks.Open ("E:\Aashay Data\Projects\Excel\Carton\Screen Printing.xlsx")
    o.ActiveWorkbook.worksheets.Add.Name = "x"
    o.ActiveWorkbook.worksheets("x").Activate


    For Each pgh In ActiveDocument.Paragraphs
        With o.ActiveWorkbook.worksheets("x")
            Debug.Print pgh.Range.Text
            If Left(pgh.Range.Text, 2) = "a." And Left(Right(pgh.Range.Text, 3), 2) = "a." Then
                .Cells(i, 2).Value = pgh.Range.Text
                i = i + 1
            End If
        End With
    Next
    o.Quit

End Sub


編輯:在查看並測試 lorem ipsum 文本后,我意識到 Word VBA 不允許您選擇多個不連續的段(有關更多信息,請參閱 MS 支持文章KB288424 )。 我想最簡單的方法是簡單地導出到 debug.print 所在的 excel,我已經相應地編輯了我的代碼。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM