我正在编写代码,我需要找出一个字符串“total”或“totalals” 我试过这段代码
Set lRow = ws.Range(nRow & ":" & aRow).Find(what:="total" OR "totals", LookIn:=xlValues, lookat:=xlWhole, searchorder:=xlByRows, searchdirection:=xlNext, MatchCase:=False, searchformat:=False)
我也试过这个
Set lRow = ws.Range(nRow & ":" & aRow).Find(what:="total" OR what:="totals", LookIn:=xlValues, lookat:=xlWhole, searchorder:=xlByRows, searchdirection:=xlNext, MatchCase:=False, searchformat:=False)
是否可以像这样使用FIND功能。如果没有,请指导我找出这两个字符串中的一个。
答案 0 :(得分:4)
不,你不能那样搜索。但是,解决方法很简单
Set lRow = ws.Range(nRow & ":" & aRow).Find(what:="total", LookIn:=xlValues, lookat:=xlWhole, searchorder:=xlByRows, searchdirection:=xlNext, MatchCase:=False, searchformat:=False)
If lRow Is Nothing then
Set lRow = ws.Range(nRow & ":" & aRow).Find(what:="totals", LookIn:=xlValues, lookat:=xlWhole, searchorder:=xlByRows, searchdirection:=xlNext, MatchCase:=False, searchformat:=False)
End If
请注意,此过程可以根据您要检查的条件进行扩展,假设它们是独占的
答案 1 :(得分:2)
因为“total”是“总计”的子字符串,我们可以使用 xlPart 搜索“total”来找到任何一个字:
Sub ytrewq()
Dim ws As Worksheet, lRow As Range
Set ws = ActiveSheet
Set lRow = ws.Range("A:A").Find(what:="total", after:=Range("A1"), lookat:=xlPart)
MsgBox lRow.Address(0, 0)
End Sub