1
我試圖寫一個函數如下:應用程序定義或對象定義的錯誤
Function getEntityCode(fileName As String) As Range
Dim entitySheet As Worksheet
Dim c As Range
Dim i As Integer
Dim valid As Boolean
Dim finalRow As Integer
Dim finalCol As Integer
Set entitySheet = Workbooks("OHUploads.xlsm").Worksheets("EntityCodes")
finalRow = entitySheet.Cells(Application.Rows.Count, 1).End(xlUp).Row
On Error GoTo ErrHandler:
With entitySheet
Set c = .Range(.Cells(1, 3), .Cells(1, finalCol))
End With
valid = False
ErrHandler:
Debug.Print Error(Err)
If valid = False Then
Set getEntityCode = entitySheet.Range(entitySheet.Cells(1, 3), entitySheet.Cells(1, finalCol))
Else
Set getEntityCode = c
End If
End Function
但無論怎麼做,何時該語句執行到 集合C = .Range(.Cells( 1,3),.Cells(i,finalCol)) 它總是在errHandler中,它總是顯示:應用程序定義或對象定義的錯誤
我以爲我明確定義了一切,不能看看我做錯了什麼地方,有誰能幫我解決這個問題,非常感謝。
另外需要注意的是,即使有錯誤少執行它仍然會通過'ErrHandler'段運行。您可能希望在ErrHandler段之前停止執行錯誤的執行方法。如果需要的話,讓'ErrHandler'段重定向到結束段。很多時候你會看到人們將錯誤段註釋爲「Err_Method」,出口段註釋爲「Exit_Method」,其中Method是方法的名稱。有助於可讀性和流量控制。 – GoldBishop