如何使用“索引和匹配”来引用单独的图纸?

背景:

我有以下测试代码可以正常工作,其中H列等于B列与D列中的值

Range("H2:H17") = "=INDEX(D2:D17,MATCH(B2:B17,B2:B17,0))"

如何使用“索引和匹配”来引用单独的图纸?

问题:

我该如何在代码中使用它来引用名为“ temp”的单独工作表来执行相同的操作。这个想法是每次代码寻找“目标”时 一个索引并匹配检查列B以等于列D中的值,因此如果值A通过,则它将变为Test1?

我尝试了以下代码,但是目标未使用任何值更新。

将目标设为变体

With Application
    Target = .Index(Sheets("Temp").Range("D2:D17"),.Match(Sheets("Temp").Range("B2:B17"),Sheets("Temp").Range("B2:B17"),0))
End With

调试显示目标的以下内容

如何使用“索引和匹配”来引用单独的图纸?

感谢您的帮助!

zhangyangwokao 回答:如何使用“索引和匹配”来引用单独的图纸?

MatchWorksheetFunction界面的成员;您需要一个WorksheetFunction对象实例来调用它-一个With块可以为您保留该对象引用,因此您只需键入一次即可:

With Application.WorksheetFunction
    Target = .Index(sheet.Range("D2:D17"),.Match(sheet.Range("B2:B17"),sheet.Range("B2:B17"),0))
End With

sheet是要使用的Worksheet变量,或者是过程的Worksheet参数。

尽管Match想要成为一个单一值,但lookup_value的第一个参数看起来有些问题:早绑定Application.WorksheetFunction.Match方法对Variant的内容很挑剔愿意配合使用的子类型,并会按原样抛出类型不匹配错误。

后期绑定版本(注意拼写错误!Option Explicit不能使您摆脱后期绑定代码!)可以与range / array查找值参数一起使用,并产生一个{{1} }数组:

Variant()

确保With Application Target = .Index(sheet.Range("D2:D17"),0)) End With Target,因为如果查找失败,则此后期绑定的Variant将产生一个Match值(早期绑定的版本会引发一次运行-time error)-如果您尝试分配给除Variant/Error以外的任何内容,这将是类型不匹配错误。

本文链接:https://www.f2er.com/3120445.html

大家都在问