Excel VBA在范围内查找第一个值行

时间:2015-02-27 09:16:28

标签: excel vba excel-vba

我有这个范围,它选择该列中的所有值:

Set c = ThisWorkbook.Worksheets("SplitSkillInterv").Range("C3:C" & Rows.Count)

现在我需要让它找到一些值然后它的行(它可能是1或10+,所以我需要找到第一个)任何想法?

我需要找到例如:范围c值从1到10并随机重复直到总共100行。我并且让我说我需要找到第一次在范围和它的行中的数字3。

2 个答案:

答案 0 :(得分:0)

这个问题对我来说有点不清楚,但他们理解这一点,如果你用想要找到的值替换'Something',你会得到第一行的行号和你要找的值。

i = 3
ValueToFind = 'Something'

Do Until ValueToFind = ThisWorkbook.Worksheets("SplitSkillInterv").Cells(i, 3).Value
    i = i + 1
Loop
FirstRowWithValue = i

答案 1 :(得分:0)

我还有点不清楚你在问什么,但使用Find可能会为你解决问题:

With ThisWorkbook.Worksheets("SplitSkillInterv")
  Set Rng = .Range("C3:C" & RowCount).Find(What:=".", LookIn:=xlValues, lookat:=xlPart, _
             MatchCase:=False)    'find the first "." in the first row
  While Not Rng Is Nothing
    'Your stuff here 
    Set Rng = .Range("C3:C" & RowCount).Find(What:=".", LookIn:=xlValues, _
               lookat:=xlPart, MatchCase:=False)  'find the next "."
  Wend
End With

我会在输入此代码段之前定义RowCount。将What:="."替换为您正在寻找的任何内容。

Rng将成为包含您正在搜索的内容的单元格。您可以在'Your stuff here处对该单元格执行操作,然后下一行将查找下一次搜索项目。如果您只需要对第一项执行某些操作,请在Set Rng = ...

之后删除代码行