兩個癥結點:
1. Range 的 find 函數只能找到第 1 個符合條件的儲存格(假設為 a),
若要找第 2 個符合條件的儲存格則搜尋範圍要改成從 a 的下一格開始找起.
2. Find 函數要用 LookAt:=xlWhole(此非預設值) 才是找 "整個儲存格都符合條件" 的儲存格.
故程式改為:
Dim a, b, K, c
Set a = [a1] ' 因底下 IIF 中 a.Offset(1) 此項會執行計算, 故須先定義 a 的初值,否則會有錯誤.
For K = 1 To 50
b = Application.Large(Range("g2:g857"), K)
If Not IsNumeric(b) Then GoTo 110
Set a = Range(IIf(c = b, a.Offset(1), Range("g2")), [g857]).Find(What:=b, LookIn:=xlValues, LookAt:=xlWhole)
...
c = b
End If
Next
...作者: t8899 時間: 2014-10-29 06:10