使用VBA在Excel中search

我需要通过特定列中的特定值来search工作表。 我必须在find的行的其他列中的值做一些事情。 在特定列中获取具有search值的所有行号的最简单有效的方法是什么?

谢谢。

如果您在工作表的某个区域寻找快乐,请select该区域并运行:

Sub FindingHappiness() Dim s As String, rng As Range, r As Range Dim msg As String Set rng = Intersect(Selection, ActiveSheet.UsedRange) s = "happiness" For Each r In rng If InStr(1, r.Text, s) > 0 Then msg = msg & vbCrLf & r.Row End If Next r MsgBox msg End Sub 

请注意,使用此技术将允许您在单行,单列或单元块中或工作表上的所有单元格甚至不相交的单元格群组中进行search。

你可以尝试这样的事情:

 Public Function Test(str As String, rng As Range) As Variant Dim xVal As Variant, Arr() As Variant Dim i As Long ReDim Arr(0 To 100) For Each xVal In rng If xVal.Value = str Then Arr(i) = xVal.Row i = i + 1 End If Next If i Then ReDim Preserve Arr(0 To i - 1) Test = Arr Else Test = 0 End If End Function 

(通过电话完成,可能包含错误)