【问题标题】:Search for a Cell in Excel using VBA使用 VBA 在 Excel 中搜索单元格
【发布时间】:2012-05-03 19:12:30
【问题描述】:

问题: 我想在单元格内容旁边或下方的单元格中查找工作簿的文本值。

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

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

我的方法: 1. 用户输入

  1. 转到每个单元格并搜索它。如果在 excel 中搜索整个单元格的限制,这将需要一些时间。所以搜索仅限于 100 列 x 10000 行。

  2. 找到它的索引后,偏移1列得到值

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

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

【问题讨论】:

标签: excel vba


【解决方案1】:
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) 会给你你想要保存的值,所以设置 worksheet(2).range("a1").offset(counter,0) 将列出它在第二个选项卡上找到的所有值,从 a1 到它在该范围内找到的任何值

【讨论】:

  • 抱歉迟到了,我没能成功实现这个。不过,我会在明天的午餐时间尝试。
  • 我会弄清楚我的实现出了什么问题。还在学习过程中。无论如何,非常感谢您的帮助。
  • 运行到Worksheet(2)时,报错“Compile error: Sub or Function not defined”i48.tinypic.com/286qr9u.jpg
  • 拼写错误 - 应该是工作表s - 我会修复代码
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2023-03-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-10-15
  • 2013-07-09
  • 1970-01-01
相关资源
最近更新 更多