【发布时间】:2015-09-10 00:08:44
【问题描述】:
我是 VB 脚本的新手,所以请多多包涵!我正在尝试创建一个使用来自两个不同 Excel 工作簿的工作表的脚本。它打开第一个工作表并遍历指定范围。然后我希望它获取该范围内每个单元格的值并搜索第二个工作表(在不同的工作簿中)并搜索在第一个工作表中找到的值,如果找到该值,则返回地址找到它的单元格。例如:
Worksheet1
╔══════╦═════╗
║ Name ║ Age ║
╠══════╬═════╣
║ Matt ║ 22 ║
║ Jeff ║ 13 ║
╚══════╩═════╝
Worksheet2
╔═══════╦════════════╗
║ Name ║ DOB ║
╠═══════╬════════════╣
║ Dave ║ 09/12/2001 ║
║ Frank ║ 01/25/1992 ║
║ Jeff ║ 10/10/2013 ║
╚═══════╩════════════╝
所以脚本会输出:A4
因为它在第二个工作表中找到了第一个工作表的指定范围 (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
当我运行此代码时,我收到以下错误:
错误:需要对象:“找到”
我确信我在这里遗漏了一些明显的东西,但我已经旋转了很长一段时间,并希望有人可以提供一些反馈。非常感谢任何帮助!
【问题讨论】:
-
感谢@Bond 的格式编辑!