我正在制作一个VBA机器,它接收一个Word文档并在Excel文件中搜索术语,然后用术语复制每个句子并将其粘贴到Excel工作表中。我有两种不同的代码拼凑在一起,可以在Word文档中搜索另一个Word文档中的单词列表,还可以复制每个使用给定单词的句子。这是我的代码:
let rec T a =
if a = 0 then
2
else
T (a - 1) * a
每当我运行时:
Sub thesearchmacro()
Dim excelfile As Object
Dim excelsheet As Object
Dim worddoc As Document
Dim searchcell As Range
Dim destcol As Integer
Dim destrow As Integer
Dim searchterms As Range
Dim documentrange As Range
Set documentrange = ActiveDocument.Range
Set excelfile = CreateObject("Excel.Application")
Set excelsheet = excelfile.workbooks.Open("U:\filepath\searchmachine.xlsm")
Set searchterms = excelsheet.Worksheets("Data").Range("B2:GX2")
destcol = 2
For Each searchcell In searchterms.Cells
destrow = 3
With documentrange.Find
Do
.Text = searchcell
documentrange.Expand unit:=wdSentence
documentrange.Copy
documentrange.Collapse wdCollapseEnd
excelsheet.Cells(destrow, destcol).Paste
destrow = destrow + 1
Loop While .Found
destcol = destcol + 1
End With
Next
End Sub
返回时出现类型不匹配错误。
*编辑:错过了副本
添加了findwindow的建议
这最终有效。如果你想复制它,请随时问我任何事情。
Set searchterms = excelsheet.Worksheets("Data").Range("B2:GX2")
答案 0 :(得分:1)
Word.Range
和Excel.Range
是不同的类型。
如果您乐意在项目中添加对Excel的引用,请执行此操作,并根据需要将所有Range
替换为Word.Range
或Excel.Range
。
否则将所有Excel类型声明为Object
s。