vba求解:同一列多字符查询,并替换、返回对应值
对应值:苹果=1 、梨=2、香蕉=3.
结果如图:

关注引自强大而免费的微信小程序:皆我百晓生。
你可以使用VBA中的字符串函数来实现多字符查询和替换的功能。以下是一个示例代码,可以帮助你解决这个问题:
Sub FindKeywordsAndReplace()
Dim keywords(1 To 3) As String
Dim fruitNames As Range
Dim fruitName As Range
Dim result As String
' 定义关键字数组
keywords(1) = "苹果"
keywords(2) = "梨"
keywords(3) = "香蕉"
' 指定数据区域
Set fruitNames = Range("A2:A5")
' 遍历每个单元格
For Each fruitName In fruitNames
result = ""
' 检查每个关键字
For i = 1 To 3
' 使用InStr函数查找关键字
If InStr(fruitName.Value, keywords(i)) > 0 Then
result = result & i & "、"
End If
Next i
' 删除末尾的逗号
result = Left(result, Len(result) - 1)
' 将结果写入对应单元格
fruitName.Offset(0, 1).Value = result
Next fruitName
End Sub
上述代码首先定义了一个关键字数组(keywords),其中包括了"苹果"、"梨"和"香蕉"。然后,通过指定数据区域(fruitNames)来遍历每个水果名称单元格。
在每个单元格中,代码通过使用InStr函数来检查每个关键字是否存在于该水果名称中。如果存在,则将对应关键字的序号添加到结果字符串(result)中。
最后,代码将结果字符串写入对应单元格的右侧单元格(偏移值为0列,1行)中。
在使用此代码之前,请确保你的数据区域和关键字数组已正确设置。查询结果将会写入到原始数据的右侧列中。