【问题标题】:How to search for specific word or words in a column of data and return that value如何在数据列中搜索特定单词或单词并返回该值
【发布时间】:2019-06-17 17:30:45
【问题描述】:

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

在数据列中搜索单词“Restricted”和“Unrestricted”。如果这些词中只有一个出现在数据中,则将该词作为值返回(例如,如果数据中只有“Restricted”,则返回“Restricted”。如果两个词都出现在数据中,则返回“Restricted/Unrestricted”) .如果两个词都没有出现在数据中,则返回“None”。

【问题讨论】:

  • 嗨!欢迎来到 SO。 SO 实际上并不意味着是一个代码编写服务。到目前为止,你有没有尝试过任何东西,你在哪里卡住了?请看How to Ask,谢谢!
  • Excel Vba .find的可能重复
  • @BigBen 很抱歉,如果这是错误的论坛,因为我是 SO 新手。我已经构建了 90% 的宏,但我被困在这一项任务中,无法在网上找到任何东西。我考虑过使用案例选择,但我相信这只适用于查看单个单元格而不是一列数据。另外,我认为该功能不允许您搜索多个值。
  • 请随时 edit 使用您目前拥有的代码提出问题。
  • 这里不需要 VBA。使用countif 函数。计算一列中的RestrictedUnresticted。请参阅下面的答案。

标签: excel vba


【解决方案1】:

这里不需要 VBA。使用COUNTIF function。统计一列中的RestrictedUnresticted

=IF(AND(COUNTIF(A:A,"Restricted")>0,COUNTIF(A:A,"Unrestricted")>0),"Restricted/Unrestricted",IF(COUNTIF(A:A,"Restricted")>0,"Restricted",IF(COUNTIF(A:A,"Unrestricted")>0,"Unrestricted","None")))

此公式检查 A 列。

【讨论】:

    【解决方案2】:

    如果你比较它们不区分大小写,你注意到了 Unrestricted 这个词也包含 Restricted 这个词。

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

    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
    

    【讨论】:

    • 一个建议:如果你的最后一个ElseIf 是正确的结果,你运行InStr 6 次。但是如果你把结果放在像ResultUnrestricted = InStr(1, StrText, "Unrestricted", vbBinaryCompare)这样的变量中,然后用这个变量来比较,你只需要运行2次。这样可以节省您的时间,因为您不会一遍又一遍地进行相同的比较。
    猜你喜欢
    • 1970-01-01
    • 2023-03-15
    • 2012-09-17
    • 1970-01-01
    • 2022-01-04
    • 1970-01-01
    • 1970-01-01
    • 2022-07-25
    • 2015-05-22
    相关资源
    最近更新 更多