Vba 运行时错误424需要对象
我无法在下面列出的子列表中找到我的错误。我收到一条“运行时错误424需要对象”消息 我的目的是将excel公式转换为VBA代码Vba 运行时错误424需要对象,vba,excel,Vba,Excel,我无法在下面列出的子列表中找到我的错误。我收到一条“运行时错误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
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
在一维数组中编制索引时,为
索引
设置两个参数是没有意义的
.Index(SHEET2NAME.Range("D:D"), .Match(lookup_value, SHEET2NAME.Range("A:A"), 0))
而且
.Match(查找值,SHEET1NAME.Range(“B13”),0)
没有意义,因为你在一个单元格中搜索。您是否打算在第13行搜索
.Match(lookup_value, SHEET1NAME.Range("13:13"), 0)
但是,只有在二维范围内编制索引时,才可以使用两个参数来编制索引。但是,您需要反转为索引提供的第二个和第三个参数,因为第二个参数是行索引,在列中获取,第三个是在行中获取的列索引
例如,假设要在范围A1:D20
中查找一个单元格,其中lookup\u value
显示在列a
(同一行)和行13(同一列)上:
顺便问一下,什么是SHEET1NAME
和SHEET2NAME
?只是名称还是工作表对象?以上所有这些都假设它们是工作表对象,但我猜运行时错误是抱怨这些只是名称而不是对象!在这种情况下,用工作表(SHEET1NAME)
和工作表(SHEET2NAME)
替换它们。在一维数组中编制索引时,为索引设置两个参数是没有意义的
.Index(SHEET2NAME.Range("D:D"), .Match(lookup_value, SHEET2NAME.Range("A:A"), 0))
而且
.Match(查找值,SHEET1NAME.Range(“B13”),0)
没有意义,因为你在一个单元格中搜索。您是否打算在第13行搜索
.Match(lookup_value, SHEET1NAME.Range("13:13"), 0)
但是,只有在二维范围内编制索引时,才可以使用两个参数来编制索引。但是,您需要反转为索引提供的第二个和第三个参数,因为第二个参数是行索引,在列中获取,第三个是在行中获取的列索引
例如,假设要在范围A1:D20
中查找一个单元格,其中lookup\u value
显示在列a
(同一行)和行13(同一列)上:
顺便问一下,什么是SHEET1NAME
和SHEET2NAME
?只是名称还是工作表对象?以上所有这些都假设它们是工作表对象,但我猜运行时错误是抱怨这些只是名称而不是对象!在这种情况下,用工作表(SHEET1NAME)
替换它们,并且工作表(SHEET2NAME)
我的excel公式是…=索引(SHEET2NAME!D:D,MATCH($B$13,SHEET2NAME!$A:$A,0))B13处于启用状态SHEET1NAME@t.mo可以在公式的一部分更改图纸的名称。i、 e.SHEET1NAME.Range(“13:13”)
。但是您需要决定使用哪个参数,不能在一列中有两个参数要索引。顺便问一下,SHEET1NAME
和SHEET2NAME
是什么?只是名称还是工作表对象?我猜想运行时错误是抱怨这些只是名称而不是对象!工作表的Name
和.CodeName
值可能总是相同的,但明确使用wb.Worksheets(“SHEET1NAME”).Range
而不是SHEET1NAME.Range
。我的excel公式是…=索引(SHEET2NAME!D:D,MATCH($B$13,SHEET2NAME!$A$A,0))B13接通SHEET1NAME@t.mo可以在公式的一部分更改图纸的名称。i、 e.SHEET1NAME.Range(“13:13”)
。但是您需要决定使用哪个参数,不能在一列中有两个参数要索引。顺便问一下,SHEET1NAME
和SHEET2NAME
是什么?只是名称还是工作表对象?我猜想运行时错误是抱怨这些只是名称而不是对象!工作表的Name
和.CodeName
值可能总是相同的,但明确使用wb.Worksheets(“SHEET1NAME”).Range
而不是SHEET1NAME.Range
,可能更安全。您的代码实际上是否有SHEET1NAME
或是占位符?如果它是一个占位符,您是否只是在那里使用图纸名称?因为它应该是图纸(“Sheet1Name”)。范围(“E13”)
,等等。您的代码实际上有图纸1Name
还是占位符?如果它是一个占位符,您是否只是在那里使用图纸名称?因为它应该是图纸(“Sheet1Name”)。范围(“E13”)
等。