在VBA中查找部分文本抓取1个部分不正确的logging

我有这个代码,它在每一列(希望如此)中find一个确定的值,但它只能获取1条logging并结束代码。 桌子是这样的

Q10到Q20(“FD \葡萄”,FD \南瓜,“FD \菠萝”,FD \苹果)

然后我用这个代码只显示菠萝而不是苹果

Dim f As Range For each f In Range("Q10:Q20").Find(what:="apple", lookat:=xlPart) If f Is Nothing Then MsgBox "" Else f = "apples" End If Next f 

它只检测不正确的菠萝,我想抢苹果,但“FD”不是一成不变的,而且当我find苹果后,我想把它改成苹果

.Find(…)只会执行一次,因为你要求它在范围内find某个东西,而不是(在每个单元格中find的)。 我会build议使用instr来代替:

 Dim f As Range For Each f In Range("Q10:Q20") If InStr(1, f.Value, "apple") = 0 Then MsgBox "" Else f.Value = "apples" End If Next f