VBA Excel“编译错误:对象必需”

我在Excel中的VBA代码工作,我有以下一段代码

Set strModel = Right(rng.Offset(0, 13).Value, Len(rng.Offset(0, 13).Value) - 4) 

当我运行代码时,我得到一个编译错误进行debugging,它读取Object Required 。 这是什么要求我做的?

这是代码的一个较大的部分:

 strHSLtemp = "C:\Users\Desktop\To Do\MidDay Orders Macro Tool\Temp Files\HSL Orders Temp.xlsx" wbHSLtemp = Dir(strHSLtemp) Set wbHSLtemp = Workbooks.Open(strHSLtemp) Set wsHSLtemp = wbHSLtemp.Sheets(1) Dim arrModels() As String, strModel As String, blMultipleModels As Boolean, rngModel As range, lngModels As Long Dim rng As range Set strModel = Right(rng.Offset(0, 13).Value, Len(rng.Offset(0, 13).Value) - 4) 'strip off leading "HSL-" strModel = Replace(strModel, " / ", "/") 'get rid of the spaces that appear to surround the forward slash If InStr(1, strModel, "/") > 0 Then 'yep, there are multiples blMultipleModels = True Else blMultipleModels = False End If If blMultipleModels = False Then 'just assign the model and move on in the outer loop wsHSLtemp.Cells(lastrowOutput, 12) = strModel 

您正尝试使用set关键字和一个stringvariables。 只有对象需要设置。 删除设置,你应该没问题:)

具体来说,更改这个:

 Set strModel = Right(rng.Offset(0, 13).Value, Len(rng.Offset(0, 13).Value) - 4) 

为此:

 strModel = Right(rng.Offset(0, 13).Value, Len(rng.Offset(0, 13).Value) - 4) 

那么你声明了一个rngvariables,但是你没有给它赋值。 所以:

  • 更换

    Set strModel = Right(rng.Offset(0, 13).Value, Len(rng.Offset(0, 13).Value) - 4)

    strModel = Right(rng.Offset(0, 13).Value, Len(rng.Offset(0, 13).Value) - 4) 'strip off leading "HSL-"

  • rngvariables指定一个值,偏移量的一些起点。