我发现的有关vba-excel中搜索功能的所有提示都指向同一工作簿。但是,在激活另一个工作簿之后,就像在这段代码中一样
aDifferentWorkbook.Activate
Set Found = Cells.Find(What:=LookedFor.Text, LookIn:=xlValues, LookAt:=xlWhole)
结果总是如此 Found Is Nothing = True 虽然LookedFor.Text存在于此工作簿中。 切换到不同的工作簿后有没有人知道是否有特殊规则?
非常感谢你 DevEd
答案 0 :(得分:2)
您需要在该工作簿中实际选择一个工作表:
aDifferentWorkbook.Activate 'optional
aDifferentWorkbook.Sheets(1).Select
Set Found = Cells.Find(What:=LookedFor.Text, LookIn:=xlValues, LookAt:=xlWhole)
然后选择下一张纸,依此类推。
稍微可靠的代码是
Dim ws As Excel.Worksheet
For Each ws In aDifferentWorkbook.Worksheets
Set Found = ws.Cells.Find(What:=LookedFor.Text, LookIn:=xlValues, LookAt:=xlWhole)
Next ws
因为它避免了任何选择