运行时错误424对象需要
我无法find我在下面列出的错误。 我收到“运行时错误424对象所需”消息。
我的意图是将我的Excel公式转换成VBA代码。
Private Sub Workbook_INDEXMATCH() Dim wb As Workbook, wb1 As Workbook Dim LastRow As Long Set wb = Workbooks("WORKBOOK.xlsm") With Application.WorksheetFunction SHEET1NAME.Range("E13") = _ .Index(SHEET2NAME.Range("D:D"), .Match(lookup_value, SHEET1NAME.Range("B13"), 0), .Match(lookup_value, SHEET2NAME.Range("A:A"), 0)) End With End Sub
当您在单维数组中build立索引时,索引有两个参数是没有意义的。
.Index(SHEET2NAME.Range("D:D"), .Match(lookup_value, SHEET2NAME.Range("A:A"), 0))
也,
.Match(lookup_value, SHEET1NAME.Range("B13"), 0)
没有意义,因为你在这里的单个单元格中search。 可能是你打算在第13行search?
.Match(lookup_value, SHEET1NAME.Range("13:13"), 0)
但是,仅当您在二维范围内build立索引时,才会使用2个参数作为Index
。 但是你需要反转你给Index
的第二个和第三个参数,因为第二个参数是一个行索引,它是在一个列中获取的,第三个是在该行中获取的列索引。
例如,假设您想要查找一个单元格,范围为A1:D20
,其中lookup_value
出现在A
列(同一行)和第13行(同一列)上:
myVariable = .Index(SHEET2NAME.Range("D:D"), _ .Match(lookup_value, SHEET2NAME.Range("A:A"), 0), _ .Match(lookup_value, SHEET1NAME.Range("13:13"), 0))
顺便说一下, SHEET1NAME
和SHEET2NAME
什么? 只是名称或工作表对象? 所有上述假定他们是工作表对象,但我猜运行时错误是抱怨,这些只是名称不是对象! 在这种情况下,将其replace为Worksheets(SHEET1NAME)
和Worksheets(SHEET2NAME)
。