当代码执行此行Set r = tbl.Find(what:= mx)时,如果单元格包含重复的零或任何数字,则它会重复返回相同的位置。例如,如果我有重复的零搜索:它给我的结果为V1B,V1B,V1B,而不是返回V1B,V2B和V2C。我认为只有重复这些值才能做到这一点。如何修改此代码?使用find方法搜索值
V1 V2 V3
A 1 5 9
乙0 0 0
的C 7 8 4
子搜索() 昏暗TABL作为范围,HEADR作为范围,MX作为双人 昏暗r作为范围,colr As Range Dim p As Long
With Sheet1
For p = 1 To 9
Set tbl =.Range("B3:D5")
Set headr =.Range("B2:D2")
Set colr =.Range("A3:A5")
mx =.Cells(6 + p, 3)
Set r = tbl.Find(what:=mx)
v = Intersect(headr, r.EntireColumn).Value
v = v & " " & Intersect(colr, r.EntireRow).Value
.Cells(6 + p, 2) = v
Next p
End with
末次
看一看的.FindNext方法 - 你会必须阻止它无限循环通过你的范围! – citizenkong 2014-08-28 13:06:44
@Citizenkong:我在尝试.FindNext方法,你知道如何在这段代码中使用吗? – Pratzy 2014-08-28 13:08:24
诀窍是,当你再次到达起始地址时,或者如果你正在改变事物,你需要停止“查找”,直到“Find”返回“Nothing”。 – citizenkong 2014-08-28 13:09:49