Excel Find函数的使用

Excel Find函数的使用,excel,vba,Excel,Vba,我正在那里写代码,我需要找出一个字符串“total”或“totals” 我试过这个密码 Set lRow = ws.Range(nRow & ":" & aRow).Find(what:="total" OR "totals", LookIn:=xlValues, lookat:=xlWhole, searchorder:=xlByRows, searchdirection:=xlNext, MatchCase:=False, searchformat:=False) 我也试过

我正在那里写代码,我需要找出一个字符串“total”或“totals” 我试过这个密码

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函数吗。如果没有,请指导我如何找到这两个字符串之一

不,你不能那样搜索。不过,解决办法很简单

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
请注意,此过程可以扩展到您想要检查的任意多个条件,假设它们是独占的

,因为“total”是“totals”的子字符串,我们可以使用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

如果除了
total
totals
之外没有其他内容,例如
total Recall
,则可以使用通配符
what:=“total*”
@SiddharthRout从现在开始,我用于求和的每个变量都将被命名为
TotalRecall
,如果是真的,如果OP不想找到类似“subtotal”的东西,这将不起作用,非常感谢您告诉我这种方法。我将在我的编码中使用这种方法。但在这里我想澄清一个疑问,如果我按照Siddharth先生的建议使用“total*”,它会找到“totalD”或任何其他后缀为“total”的东西吗?如果在函数中指定的表或范围中存在多个“total”,我会得到什么结果?@Nafis如果存在多个total,它将只找到指定范围内的第一个。Siddharth将查找以“total”开头的任何内容,但find函数始终返回第一个找到的实例。