2015-04-08 104 views
0

我有以下一塊VBA代碼,但是當我運行它時,我得到無限MsgBoxes顯示我地址上面的4行相同的地址的ID。我必須用Ctrl + Break停止執行。Excel VBA。找到()錯誤

我一直在努力讓代碼工作,在我看來,錯誤來自Find()方法。在我的代碼的其他版本,我得到的對象‘範圍’的「方法‘查找’失敗。如何解決這個問題的任何想法?謝謝。

Function CheckFinancials(ID As Integer) As Double 
    Dim MyArray(1 To 4) As Integer 
    Dim Guide As Range 
    Set Guide = Worksheets("Financials").Range(Cells(1, 1),Cells(Worksheets("Financials").UsedRange.Rows.Count, 1)) 
    Set Guide = Guide.Find(ID) 

    MsgBox Guide.Address 
+0

您的代碼,正如寫的,完美的作品對我來說它發現在列單ID值,顯示一個MSGBOX,並退出問題也許是。 – PeterT

回答

0

你找小姐很多參數(嘗試記錄它,你會看到),測試:

Function CheckFinancials(ID As Integer) As Double 
    Dim MyArray(1 To 4) As Integer 
    Dim Guide As Range 
    Set Guide = Worksheets("Financials").Range(Cells(1, 1), Cells(Worksheets("Financials").UsedRange.Rows.Count, 1)) 
    Set Guide = Guide.Find(What:=ID, LookIn:=xlFormulas, _ 
     LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _ 
     MatchCase:=False, SearchFormat:=False) 

    MsgBox Guide.Address 
+1

並非所有的參數都是必需的,但是如果你不指定它們,它們會被設置成什麼樣的運氣,它們只會被設置在最後一個'找到'函數調用哈d他們,無論是在代碼或從UI對話框。這都是一套參數,一個是另一個。 – FreeMan