如何在数据列中搜索一个或多个特定单词并返回该值

时间:2019-06-17 17:30:45

标签: excel vba

我希望自己的宏在数据列中搜索特定的单词。如果这些单词出现在数据中,我想将这些值返回到另一个单元格。如果不是,我希望它返回“无”。以下是我期望的结果。

在数据列中搜索单词“ Restricted”和“ Unrestricted”。如果这些单词中只有一个出现在数据中,请将该单词作为值返回(例如,如果数据中只有“ Restricted”,则返回“ Restricted”。如果两个单词都出现在数据中,则返回“ Restricted / Unrestricted”) 。如果数据中均未显示任何单词,则返回“无”。

2 个答案:

答案 0 :(得分:1)

此处无需VBA。使用COUNTIF function。在一列中计算<child-component v-for="(component, index) in blockCount" :key="index" :componentName="component"/> Restricted

Unresticted

此公式检查A列。

答案 1 :(得分:0)

如果将不区分大小写的字母与不区分大小写的字母进行比较,您会注意到一个事实,即Unrestricted这个词也包含Restricted这个词。

您可以将Instr函数与vbBinaryCompare(区分大小写)作为其最后一个参数一起使用,以查看一个字符串是否出现在另一个字符串中。

StrText = cell.Value

If InStr(1, StrText, "Unrestricted", vbBinaryCompare) > 0 And InStr(1, StrText, "Restricted", vbBinaryCompare) > 0 Then
    StrResult = "Restricted/Unrestricted"
ElseIf InStr(1, StrText, "Unrestricted", vbBinaryCompare) > 0 And InStr(1, StrText, "Restricted", vbBinaryCompare) = 0 Then
    StrResult = "Unrestricted"
ElseIf InStr(1, StrText, "Unrestricted", vbBinaryCompare) = 0 And InStr(1, StrText, "Restricted", vbBinaryCompare) > 0 Then
    StrResult = "Restricted"
Else
    StrResult = "None"
End Sub