首页 > 解决方案 > Excel vba匹配两列

问题描述

根据我的工作表“KPI”中两列 D 和 H 的值,我想将这些值与工作表“Starters”中的两列 A 和 B 相匹配,以返回 C 列中的值

首先我用工作表中的公式进行了测试,这很好用

 =INDEX(Starters!C2:C9;VERGELIJKEN(KPI!D3&KPI!H3;Starters!A2:A9&Starters!B2:B9;0))

其次,我想在 VBA 宏中使用它。我用 :

p = Application.Index(Worksheets("Starters").Range("C2:C9"), Application.Match(XRg3.Cells(K, 1).Value & XRg4.Cells(K, 1).Value, Worksheets("Starters").Range("A2:A9") & Worksheets("Starters").Range("B2:B9"), 0))

它不起作用。

这里是使用的变量

Set XRg3 = Worksheets("KPI").Range("D2:D" & J)
Set XRg4 = Worksheets("KPI").Range("H2:H" & J)

在循环中使用

For K = 1 To I 

返回值 XRg3.Cells(K, 1).Value 和 XRg4.Cells(K, 1).Value 已经过调试并且没问题。

使用下面的 VBA 代码返回一个值可以正常工作。

p = Application.Index(Worksheets("Starters").Range("C2:C9"), Application.Match(XRg3.Cells(K, 1).Value , Worksheets("Starters").Range("A2:A9") , 0))

标签: excelvbamatchtwo-columns

解决方案


推荐阅读