Excel宏,用于搜索列表中的关键字并返回匹配项的值

Excel宏,用于搜索列表中的关键字并返回匹配项的值,excel,vba,Excel,Vba,我正在寻找一个宏,它可以在一个工作表或多个工作表中搜索文档中单词列表中包含的关键字,并为每个对应的关键字返回一个值 例如 名单 1.高兴的 2.悲哀的 3.忧郁的 宏将在B列中返回“1”,例如,如果A列中的单元格说“我真的很高兴接受了培训”。这将用于对问卷中的开放式回答进行分类 在这方面的任何帮助都将不胜感激。我发现使用公式太麻烦和耗时。我相信宏会更快更精确。试试看: Sub dural() For Each r In Intersect(ActiveSheet.UsedRange, R

我正在寻找一个宏,它可以在一个工作表或多个工作表中搜索文档中单词列表中包含的关键字,并为每个对应的关键字返回一个值

例如

名单 1.高兴的 2.悲哀的 3.忧郁的

宏将在B列中返回“1”,例如,如果A列中的单元格说“我真的很高兴接受了培训”。这将用于对问卷中的开放式回答进行分类

在这方面的任何帮助都将不胜感激。我发现使用公式太麻烦和耗时。我相信宏会更快更精确。

试试看:

Sub dural()
    For Each r In Intersect(ActiveSheet.UsedRange, Range("A:A"))
        a = r.Value
        If InStr(1, a, "Happy") > 0 Then r.Offset(0, 1) = 1
        If InStr(1, a, "Sad") > 0 Then r.Offset(0, 1) = 2
        If InStr(1, a, "Melancholy") > 0 Then r.Offset(0, 1) = 3
    Next r
End Sub
请注意……它将匹配“快乐”。它不会匹配快乐