返回列表 上一主題 發帖

[發問] 程序沒問題,答案郤有問題????

本帖最後由 luhpro 於 2014-10-28 23:38 編輯
程序跟來源沒問題,答案郤有問題????
t8899 發表於 2014-10-28 20:46

兩個癥結點:
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
...

TOP

本帖最後由 luhpro 於 2014-10-29 21:17 編輯
Set a = Range(IIf(c = b, a.Offset(1), Range("g2")), [g857])
此處需要物件??
t8899 發表於 2014-10-29 06:10

底下這一行要放在最前面,
有放了嗎?
Set a = [a1]  ' 因底下 IIF 中  a.Offset(1) 此項會執行計算, 故須先定義 a 的初值,否則會有錯誤.

回復  t8899
Large函數 不是真的傳回數值資料中的第幾大,你是否了解
你的附檔程式碼用 Large函數  ...
GBKEE 發表於 2014-10-29 15:08

以我看樓主的情形並不適合濾掉相同數值的資料,
而是要一一顯示出來的喔.

兩個不同股票的某個值可能相同,
但卻是都需要列出來的,
不能因為某個值相同就只列一支股票的資料,
這支股票不能取代其他股票的資料.

所以我才把 Find 函數的Range範圍設為 : 上次相同值的下一個儲存格開始至最末格止.

報歉,我的G,H欄是公式 =IF(C2<>E2,"",XQKGIAP|Quote!'1101.TW-BestBidSize1')
套上去出現錯誤,不知如何修改?
#1004#
應用程式物件定義錯誤
t8899 發表於 2014-10-29 20:01

經我實際測試過這一行不該發生此錯誤,
不如上傳檔案看看?

TOP

        靜思自在 : 成功是優點的發揮,失敗是缺點的累積。
返回列表 上一主題