如何在 VBA 中使用索引和匹配功能
How to use Index and match funtion in VBA
我想在VBA中使用以下功能。
=INDEX(Zones!$G:$S3;MATCH($A2;Zones!$C:$C2;);MATCH($B2;Zones!$G:$S;))
我用了两个 table。在 table 列 C2:C 的“数据”中,我想传输搜索结果。
任何人都可以帮助 VBA 编码吗?
谢谢!
无法从您的公式中看出您正在尝试什么,但从您的描述听起来就像您正在尝试创建一个枢轴 Table,今天您可以使用 Spill Ranges 轻松创建它。也就是说,我认为不需要 VBA。
现在我自己没有测试过,从臀部开始,VBA 替换应该是微不足道的:
public function zone(DBase as Range, Locale as String, Locales as Range, Service as String, Services as Range) as Variant
Dim iLocale as Long
iLocale = WorksheetFunction.Match(Locale,Locales,0)
Dim iService as Long
iService = WorksheetFunction.Match(Service,Services,0)
zone = DBase(iLocale,iService)
end function
当然需要错误检查。我发现您的动机仍然很可疑 ;) 就个人而言,我不会这样做。您从其他地方导入数据的野心很可能也不会如您所愿。
我想在VBA中使用以下功能。
=INDEX(Zones!$G:$S3;MATCH($A2;Zones!$C:$C2;);MATCH($B2;Zones!$G:$S;))
我用了两个 table。在 table 列 C2:C 的“数据”中,我想传输搜索结果。 任何人都可以帮助 VBA 编码吗? 谢谢!
无法从您的公式中看出您正在尝试什么,但从您的描述听起来就像您正在尝试创建一个枢轴 Table,今天您可以使用 Spill Ranges 轻松创建它。也就是说,我认为不需要 VBA。
现在我自己没有测试过,从臀部开始,VBA 替换应该是微不足道的:
public function zone(DBase as Range, Locale as String, Locales as Range, Service as String, Services as Range) as Variant
Dim iLocale as Long
iLocale = WorksheetFunction.Match(Locale,Locales,0)
Dim iService as Long
iService = WorksheetFunction.Match(Service,Services,0)
zone = DBase(iLocale,iService)
end function
当然需要错误检查。我发现您的动机仍然很可疑 ;) 就个人而言,我不会这样做。您从其他地方导入数据的野心很可能也不会如您所愿。