Excel VBA INDEX MATCH(不使用代码粘贴公式)

问题描述 投票:1回答:1

我已经看到几个问题围绕在VBA中的多个标准使用INDEX MATCH,但它们似乎都围绕着将公式粘贴到单元格中。

我正在通过ListObject循环并尝试在差异表上查找3个条件,但我希望粘贴到单元格中的值不是公式。我尝试使用Application.IndexApplication.WorksheetFunction.IndexApplication.MatchApplication.WorksheetFunction.MatchEvaluate()的各种组合,但我仍然得到#Value!(当我没有得到错误)。我在下面尝试过的一些内容(这是我正在犯的一个非常简单的错误)。

wsSrc作为ListObject的一部分具有以下范围,我想将结果粘贴到wsDest上。

rngDate = Range("Table24[date]") 'Date
rngFrom = Range("Table24[from]") 'String
rngTo = Range("Table24[to]") 'String

rngLookup = Range("Table24[lookup]") 'Double

基于Date,From和To的组合我想在rngLookup中查找值。

我试过了:

Application.Index(rngLookup.Address, _
Application.Match(strDate & "USD" & strTo, _
rngDate.Address & rngFrom.Address & rngTo.Address))

我也尝试过:

x = wsSrc.Evaluate("INDEX(" & rngLookup.Address & _
",MATCH(" & strDate & "USD" & strTo & "," & _
rngDate.Address & "&" & rngFrom.Address & "&" & rngTo.Address)

我甚至尝试使用CStr(CDate())转换日期,Dim sht As Worksheet, dt, sFrom, sTo Set sht = ActiveSheet ' e.g. dt = DateSerial(2017, 12, 18) sFrom = "B" sTo = "C" Debug.Print sht.Evaluate( _ "INDEX(Table24[lookup],MATCH(1," & _ "(Table24[date]=" & (dt * 1) & ")*" & _ "(Table24[from]=""" & sFrom & """)*" & _ "(Table24[to]=""" & sTo & """),0))") 适用于Excel,但不适用于VBA。

没有任何欢乐,任何想法?再次,确认我只想要的值不是粘贴到单元格中的公式。

excel vba indexing match
1个回答
0
投票

这对我来说使用了同名的表和列:

qazxswpoi

假设您的表格的日期是实际日期而不是字符串。

© www.soinside.com 2019 - 2024. All rights reserved.