Vba中如何通过多个值,在在另一张表中找对应列查找,并返回咧号
时间: 2024-11-23 15:39:47 浏览: 10
VBA示例之 求人不如自已动手 多个工作表中指定条件指定范围加总求和
在VBA中,你可以使用`Find`函数来搜索特定的值,然后结合`Range`和`EntireRow`属性来获取匹配行。这里有一个简单的示例,展示了如何在一个范围(如"8"工作表的"B1:E1000")内查找多个值并返回它们所在的行号:
```vba
Sub FindMultiValues()
Dim ws As Worksheet
Set ws = ThisWorkbook.Sheets("8")
' 定义要查找的一系列值
Dim valuesToFind() As Variant
valuesToFind = Array("a", "any other value", "yet another value") ' 添加更多值
' 遍历每个查找值
For Each val In valuesToFind
Dim rng As Range
Set rng = ws.Range("B1:E1000")
' 查找第一个匹配项
If Not rng.Find(What:=val, LookIn:=xlValues, LookAt:=xlWhole) Is Nothing Then
' 如果找到,返回该行号
Debug.Print "Found '" & val & "' at row " & rng.Cells.Find(val).Row & "!"
' 使用FindPrevious方法查找下一个符合条件的行,直到找不到为止
Do While rng.FindPrevious(What:=val, LookIn:=xlValues, LookAt:=xlWhole) <> rng.Rows(1)
Debug.Print "Found '" & val & "' at row " & rng.Cells.FindPrevious(Val).Row & " (previous match)"
Loop
Else
Debug.Print "Value not found: " & val
End If
Next val
End Sub
```
这段代码会在指定范围内查找每一个值,并打印出找到的行号及其位置。如果值不存在,则会报告未找到。
阅读全文