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