Excel Find函数的使用
我正在那里写代码,我需要找出一个字符串“total”或“totals” 我试过这个密码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) 我也试过
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函数始终返回第一个找到的实例。