Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Excel 如何使用If语句在列中搜索特定文本?_Excel_Vba - Fatal编程技术网

Excel 如何使用If语句在列中搜索特定文本?

Excel 如何使用If语句在列中搜索特定文本?,excel,vba,Excel,Vba,我试图让代码检查整个列是否包含特定文本。 它将永远是首都。这行后面有很多代码,但我只希望在满足以下条件时运行代码。我所思考的代码如下 If ActiveSheet.Range("J:J").Text = "GENERAL" Then 然而,这并没有什么回报,我尝试了Instr,但没有任何效果 正确的语法是什么?您可以在一个范围内搜索 if not ActiveSheet.Range("J:J").Find("GENERAL", MatchCase:=True) is nothing then

我试图让代码检查整个列是否包含特定文本。 它将永远是首都。这行后面有很多代码,但我只希望在满足以下条件时运行代码。我所思考的代码如下

If ActiveSheet.Range("J:J").Text = "GENERAL" Then
然而,这并没有什么回报,我尝试了Instr,但没有任何效果


正确的语法是什么?

您可以在一个范围内搜索

if not ActiveSheet.Range("J:J").Find("GENERAL", MatchCase:=True) is nothing then
    msgbox "found it!"
end if

你可以在一个范围内搜索

if not ActiveSheet.Range("J:J").Find("GENERAL", MatchCase:=True) is nothing then
    msgbox "found it!"
end if
发现有用武之地

查找什么,[After]、[LookIn]、[LookAt]、[SearchOrder]、[SearchDirection As XlSearchDirection=xlNext]、[MatchCase]、[MatchByte]、[SearchFormat]

您应该指定匹配的GENERAL是使用LookAt:=xlother的整个字符串,还是部分匹配,即在GENERAL Combation中匹配GENERAL使用LookAt:=xlPart

此外,通常最好使用下面的范围对象rng1,以便可以使用找到的对象。尽管在您的情况下,布尔测试足以运行或不运行进一步的代码

部分匹配

整场比赛

发现有用武之地

查找什么,[After]、[LookIn]、[LookAt]、[SearchOrder]、[SearchDirection As XlSearchDirection=xlNext]、[MatchCase]、[MatchByte]、[SearchFormat]

您应该指定匹配的GENERAL是使用LookAt:=xlother的整个字符串,还是部分匹配,即在GENERAL Combation中匹配GENERAL使用LookAt:=xlPart

此外,通常最好使用下面的范围对象rng1,以便可以使用找到的对象。尽管在您的情况下,布尔测试足以运行或不运行进一步的代码

部分匹配

整场比赛


你能举个例子吗?你是如何使用InStr的?你能举个例子吗?还有你是如何使用InStr的?谢谢你的评论@亚历克斯K。谢谢。这正是我所需要的。谢谢你的评论@Alex K.谢谢这正是我所需要的。谢谢你花时间解释我的发现。我对VBA非常陌生,学习曲线非常陡峭。解释一些事情以及语法如何与特定命令配合使用是非常有帮助的。我真的很喜欢学习更多,再次感谢!感谢您花时间解释我们的发现。我对VBA非常陌生,学习曲线非常陡峭。解释一些事情以及语法如何与特定命令配合使用是非常有帮助的。我真的很喜欢学习更多,再次感谢!
Sub FindWholeString()
Dim rng1 As Range
'find exact match
Set rng1 = ActiveSheet.Range("J:J").Find("GENERAL", , xlValues, xlWhole, , , True)
If Not rng1 Is Nothing Then
MsgBox "found in " & rng1.Address(0, 0)
Else
MsgBox "no found", vbCritical
End If
End Sub