xinshou2023 2023-12-13 10:32 采纳率: 100%
浏览 6
已结题

长字符串中多个关键字查找

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

img

  • 写回答

3条回答 默认 最新

  • 专家-赤兔[在线] 优质创作者: 编程框架技术领域 2023-12-13 10:44
    关注

    引自强大而免费的微信小程序:皆我百晓生

    你可以使用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行)中。

    在使用此代码之前,请确保你的数据区域和关键字数组已正确设置。查询结果将会写入到原始数据的右侧列中。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 12月21日
  • 已采纳回答 12月13日
  • 创建了问题 12月13日