在激活的工作簿中查找excel vba的方法

时间:2013-05-15 12:42:10

标签: excel vba find

我发现的有关vba-excel中搜索功能的所有提示都指向同一工作簿。但是,在激活另一个工作簿之后,就像在这段代码中一样

aDifferentWorkbook.Activate
Set Found = Cells.Find(What:=LookedFor.Text, LookIn:=xlValues, LookAt:=xlWhole)

结果总是如此     Found Is Nothing = True 虽然LookedFor.Text存在于此工作簿中。 切换到不同的工作簿后有没有人知道是否有特殊规则?

非常感谢你 DevEd

1 个答案:

答案 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

因为它避免了任何选择