我正在尝试编写如下函数:
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(。细胞(1,3),。细胞(i,finalCol)) 它总是在errHandler中结束,它总是显示:应用程序定义的错误或对象定义的错误
我以为我已经明确地定义了所有内容,看不出我做错了什么,请有人帮我这个,非常感谢你。
答案 0 :(得分:2)
您永远不会为finalCol
设置值,因此它默认为0。
调用Cells(1,0)
会引发错误,因为Cells是基于1而不是基于0。或者更确切地说,行或列0不存在。
我建议使用以下行:finalCol = 1
或只使用1。