Board logo

標題: [發問] 如何處理用FIND時出現的ERROR91? [打印本頁]

作者: 小俠客    時間: 2012-8-2 11:24     標題: 如何處理用FIND時出現的ERROR91?

Name Amount
A     11
A     12
A     13
B     13
B     11
B     14
D     18

現在我在寫一個小程式去整理資料,而過程中我需要知道某一項資料最後出現的位置,例如:
last = x.columns(1).Find(CELL_FIND(I), SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row

如果CELL_FIND(I) ="B", last =6

find這個很好,很容易找到第一次出現和最後出現的位置。但我發現,如果當COLUMN A沒有CELL_FIND包含的資料,例如:"C",
系統就會出現error 91, 沒有設定物件變數或WITH區域變數

由於我無法在尋找前就知道那些KEYWORD是在目標區域沒有,所以我無法回避這個問題。請問各位,可以如何解決呢?
或者有沒有另外方法去找出資料的第一次出現和最後出現的位置?謝謝
作者: Hsieh    時間: 2012-8-2 11:53

回復 1# 小俠客

Dim a as range
    set a= x.columns(1).Find(CELL_FIND(I), SearchOrder:=xlByRows, SearchDirection:=xlPrevious)
if not a is nothing then last = a.Row else msgbox "找不到資料"
作者: 小俠客    時間: 2012-8-2 13:03

試了版主的方法,真的可行,謝謝你!
作者: 小俠客    時間: 2012-8-2 16:32

本帖最後由 小俠客 於 2012-8-2 16:34 編輯
回復  小俠客

Dim a as range
    set a= x.columns(1).Find(CELL_FIND(I), SearchOrder:=xlByRows, S ...
Hsieh 發表於 2012-8-2 11:53



Hsieh大大,我有一個疑問,假設我在A1:A10 的值都是「陳大文」

用FIND 來找出第一個出現陳大文的位置:

Dim a As Range
    Set a = Columns(1).Find("陳大文", SearchOrder:=xlByRows, SearchDirection:=xlFirst)

我希望 a.row= 1,但EXCEL回給我的是2,請問是為什麼?有方法修正嗎?
P.S. 我不想直接減1,因為這樣做會影響程式的其他部份,謝謝
作者: Hsieh    時間: 2012-8-2 17:03

回復 4# 小俠客
  1. Sub ex()
  2. Set a = Columns("A").Find("陳大文", after:=[A65536], SearchOrder:=xlByRows, SearchDirection:=xlFirst)
  3. MsgBox a.Row
  4. Set a = Columns("A").Find("陳大文", after:=[A65536], SearchOrder:=xlByRows, SearchDirection:=xlPrevious)
  5. MsgBox a.Row
  6. End Sub
複製代碼

作者: GBKEE    時間: 2012-8-2 17:30

回復 4# 小俠客
  1. Sub Ex() '指定的位置必須是範圍內的位置
  2.     Dim A As Range, Rng As Range
  3.     Set Rng = [A1:A10]
  4.     Set A = Rng.Find("陳大文")                                       '預設: 從範圍第1個位置(不含)開始找
  5.     MsgBox A.Row
  6.     Set A = Rng.Find("陳大文", After:=Rng(1).Cells(Rng.Rows.Count))  '指定從最後的位置找起
  7.     MsgBox A.Row
  8.     Set A = Rng.Find("陳大文", After:=Rng(5))                        '指定從範圍的Cells(5)的位置找起
  9.     MsgBox A.Row
  10. End Sub
複製代碼





歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)