Excel VBA If语句查找包含字符串的单元格

时间:2017-04-01 20:34:11

标签: excel vba excel-vba

我希望在VBA中创建一个IF / Else语句,运行时将根据单元格是否包含某个文本字符串返回True或False值。所以基本上我想要在单元格包含指定字符串时返回True值,如果不包含指定字符串则返回False值。如果有所不同,这个公式需要运行一系列单元格而不仅仅是一个单元格。我认为我需要使用InStr功能,但我不能100%确定这是否正确或如何实现它。我是VBA的新手,所以我能得到的任何帮助都会非常感激,因为我已经坚持了几个小时。

谢谢

3 个答案:

答案 0 :(得分:1)

为什么要使用VBA?单元格中的表达式可以返回True / False。

=ISNUMBER(FIND("something",A1))

我测试了@ 3vts代码但它运行但输出错误。这个版本有效:

Sub FindString()
Dim rng As Range
Set rng = ActiveSheet.Range("A1:A100")
For Each cell In rng.Cells
    If InStr(1, cell, "text to find") > 0 Then
        cell.Offset(0, 1).Value = True
    Else
        cell.Offset(0, 1).Value = False
    End If
Next
End Sub

我当然希望你能学到一些东西,尽管你已经完成了工作。

答案 1 :(得分:1)

这是一个非常糟糕的问题,但我认为每个人在生活的某个阶段都需要一些帮助。话虽这么说,这是你要求的代码

Sub FindString()
'Declare the range
Dim rng As Range
'Assign the range to find
Set rng = ActiveSheet.Range("A1:A100")
'Loop though each cell
For Each cell In rng.Cells
    'Check if cell has the string and set text 
    'of the next column to True or False
    cell.Offset(0, 1).Value = IIf(InStr(1, cell, "stringToFind"), "True", "False")
Next
End Sub

尝试一下,让我知道你的意见

答案 2 :(得分:0)

以下可能会帮助您,它会告诉您excel是否包含Word。

Dim ra As Range

Set ra = Cells.Find(What:=Word, LookIn:=xlFormulas, LookAt _
    :=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:= _
    False, SearchFormat:=False)

If ra Is Nothing Then
    'False (Not Found)
Else
    'True (Found)
End If