目前我正在尝试创建一个单词,在运行时它会查找一些"关键字"在文档中(基本上只是标题),复制这些关键字下面的段落&然后创建一个Excel文件并将它们粘贴到这个新文件的单独单元格中,显然一旦完成就保存文件。
目前我的代码如下:
Sub WordToExcel()
Dim ObjExcel As Object, ObjWorkBook As Object, ObjWorksheet As Object
Set ObjExcel = CreateObject("EXCEL.APPLICATION")
Set ObjWorkBook = ObjExcel.Workbooks.Open("C:\Users\john\Desktop\test.xlsx")
Set ObjWorksheet = ObjWorkBook.Worksheets("Sheet1")
With Selection.Find
.ClearFormatting
.Text = "Description"
.Replacement.Text = ""
.Forward = True
.Wrap = wdFindContinue
End With
Selection.Find.Execute
Selection.MoveDown Unit:=wdParagraph, Count:=1
Selection.MoveDown Unit:=wdParagraph, Count:=1, Extend:=wdExtend
Do Until Left(Selection.Text, Len(Selection.Text) - 1) = "Tasks and Timeframe"
Ctr = Ctr + 1
Selection.MoveDown Unit:=wdParagraph, Count:=1
Selection.MoveDown Unit:=wdParagraph, Count:=1, Extend:=wdExtend
Loop
Selection.Copy
ActiveSheet.Paste
ActiveWorkbook.Save
ObjWorkBook.Save
ObjWorkBook.Close
Set ObjWorksheet = Nothing
Set ObjWorkBook = Nothing
ObjExcel.Quit
Set ObjExcel = Nothing
End Sub
和包含宏的word文档基本上只是:
描述
以下是本文档的一般说明。这应该被复制&粘贴到新的Excel文件中。
任务和时间范围
以下是任务/必要的时间范围。这也应该被复制&粘贴到Excel文件中。
答案 0 :(得分:1)
解决方案:这对我有用:
(1)删除循环Do Until
........ Loop
。之前的代码已经选择了要复制的段落。
(2)改变
ActiveSheet.Paste
ActiveWorkbook.Save
到
ObjWorksheet.Paste
ObjWorkBook.Save
否则,您的Word宏不知道您所指的Excel表格。
结果:这是运行宏后Excel文件的样子。
注意:我认为,在未来的道路上,您需要将Word文件中的句子放入Excel中的特定单元格,而不是A1
,因为您的代码现在正在执行。为此,请在ObjWorksheet.Range("B2").Select
之前添加ObjWorksheet.Paste
(将单元格设置为所需的目标单元格)。