在workheets.range中键入不匹配错误

时间:2015-10-12 18:37:21

标签: excel vba excel-vba word-vba

我正在制作一个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")

1 个答案:

答案 0 :(得分:1)

Word.RangeExcel.Range是不同的类型。

如果您乐意在项目中添加对Excel的引用,请执行此操作,并根据需要将所有Range替换为Word.RangeExcel.Range。 否则将所有Excel类型声明为Object s。