VBScript从其他工作簿searchExcel工作簿的值

我是VB脚本新手,请耐心等待! 我正在尝试创build一个使用两个不同的Excel工作簿的工作表的脚本。 它打开第一个工作表并遍历指定的范围。 我想要它然后采取该范围中的每个单元格的值,并search第二个工作表(在不同的工作簿中),并search在第一个工作表中find的值,如果find该值,返回的地址它被发现的单元格。例如:

Worksheet1 ╔══════╦═════╗ ║ Name ║ Age ║ ╠══════╬═════╣ ║ Matt ║ 22 ║ ║ Jeff ║ 13 ║ ╚══════╩═════╝ Worksheet2 ╔═══════╦════════════╗ ║ Name ║ DOB ║ ╠═══════╬════════════╣ ║ Dave ║ 09/12/2001 ║ ║ Frank ║ 01/25/1992 ║ ║ Jeff ║ 10/10/2013 ║ ╚═══════╩════════════╝ 

因此,该脚本将输出: A4因为它find了第二个工作表中第一个工作表的指定范围( A2:A3 )中的一个值,并且正在返回该单元格的位置。

这里是我有的代码:

 Set objExcel = CreateObject("Excel.Application") objExcel.Visible = True Dim val Set objWorkbook = objExcel.Workbooks.Open("C:\Users\username\file.xlsx") Set objWorksheet = objWorkbook.Worksheets("Sheet1") Set objWorkbook2 = objExcel.Workbooks.Open("C:\Users\username\file2.xlsx") Set objWorksheet2 = objWorkbook2.Worksheets("Sheet1") For Each c In objworksheet.Range("A2:A3").Cells val = c.value Set objRange = objWorksheet2.UsedRange Set found = objRange.Find(val) Wscript.Echo found.AddressLocal(False,False) Next 

当我运行这个代码时,出现以下错误:

错误:所需对象:“find”

我确信有一些明显的我在这里失踪,但我已经旋转了很长一段时间,希望有人能提供一些反馈意见。 任何帮助是极大的赞赏!

如果成功, Find()函数会返回一个Range对象,否则返回Nothing 。 所以你需要testing返回值以确保它是一个Range对象,然后再尝试访问它的属性和方法。

 For Each c In objworksheet.Range("A2:A3").Cells val = c.value Set objRange = objWorksheet2.UsedRange Set found = objRange.Find(val) ' Test for success! If Not found Is Nothing Then Wscript.Echo found.AddressLocal(False,False) End If Next