使用VBA在Excel中搜索单元格

时间:2012-05-03 19:12:31

标签: excel-vba vba excel

问题: 我想在单元格内容旁边或下面找到一个单元格的值作为工作簿的文本值。

实施例: 在Sheet2中,我有两个单元格随机(假设它的索引是未知的,并且total不是定义的名称)

enter image description here

我想在总数旁边搜索值“200”并将其放在表2(活动单元格)中。如果有多个单元格包含单词“Total”列表所有这些单词,如果可能的话,请输入包含我要查找的单元格的工作表的名称。价值200张2

enter image description here

我的方法: 1.用户输入

enter image description here

  1. 转到每个单元格并搜索它。如果在excel中搜索单元格的整个限制,这将花费时间。因此搜索仅限于100列x 10000行。

  2. 找到索引后,偏移到1列以获取值

  3. 编写结果ActiveCell.Value = Search_Value。然后继续搜索剩余的工作表。偏移1 coloum和1行写第二个值...

  4. 搜索是一个非常困难的概念,我真的不知道如何进行搜索。请帮忙

1 个答案:

答案 0 :(得分:3)

With Worksheets(1).Range("a1:a500")
    counter=0
    Set c = .Find("Total", lookin:=xlValues)
    If Not c Is Nothing Then
        firstAddress = c.Address
        Do
            counter=counter+1
            Worksheets(2).range("A1").offset(counter,0)=c.offset(0,1)
            Set c = .FindNext(c)
        Loop While Not c Is Nothing And c.Address <> firstAddress
    End If
End With

firstaddress 保存找到的第一个单元格的位置(所以我们知道何时停止); firstaddress.offset(0,1)会显示您要保存的值,因此设置工作表(2).range(“a1”)。offset(计数器,0)< / strong>将列出它在第二个选项卡上找到的所有值,从a1下降到在范围内找到的多个值