将数据从MS Word移到Excel

我有一个Microsoft Word文档,有400个select题的testing题。 我需要将所有这些文本放到一个Microsoft Excel图表中,如果我能够有一个允许我select所有以a.开头的文本的macros,我认为这会更容易a. 并在a.之后的第一个段落对象结束部分a.

我试图得到帮助,被告知使用下面的macros,但macros没有做任何事情。 我只想让macros只select所有的文本。 如果我要在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 

该文档通常是指包含执行代码的模板文档。 改用ActiveDocument

同样,@assylias在他的评论中说, Debug.Print只是用于代码debugging的目的。 将整行replace为.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 

编辑:审查了这一点,并testinglorem ipsum文本后,我意识到Word VBA不允许您select多个不连续的段(请参阅MS支持文章KB288424了解更多)。 我想最简单的方法是简单地导出到excel的debug.print位置,并且我相应地编辑了我的代码。