EXCEL VBA – 对象variables或未设置块variables

我目前正在开发一个函数,将根据我有一个stringinputsearch行号。 在下面的函数中,我得到了标题中所述的错误,我不知道该怎么做:L

这是查找行function

Function MPNTRowECU(ByVal ECUVariantName) As Range Debug.Print ECUVariantName Dim wsMPNT As Worksheet Set wsMPNT = Worksheets("Module Part Number Tracker") MPNTRowECU = wsMPNT.Range("C:C").Find(What:=ECUVariantName, LookIn:=xlValues, SearchOrder:=xlByRows) End Function 

Debug.Print行是确保ECUVariantName确实是一个string,它确实返回我每次都有的string。 在MPNTRowECU是我得到的错误。 任何build议家伙? 相当新的VBA

尝试下面的函数代码,而不是返回Range ,我修改你的Function返回Row号(如在您的文章中所述)。

此外,您还需要确保“ Find成功”,方法是使用If Not MPNTRng Is Nothing Then条件。

 Function MPNTRowECU(ByVal ECUVariantName) As Long Dim MPNTRng As Range Debug.Print ECUVariantName Dim wsMPNT As Worksheet Set wsMPNT = Worksheets("Module Part Number Tracker") Set MPNTRng = wsMPNT.Range("C:C").Find(What:=ECUVariantName, LookIn:=xlValues, SearchOrder:=xlByRows) If Not MPNTRng Is Nothing Then ' confirm that Find was successful MPNTRowECU = MPNTRng.Row Else ' Find failed to find "ECUVariantName" MPNTRowECU = -10000 ' just put a high negative value to raise an error End If End Function