Excel VBA 匹配函数内的索引

标签 excel vba indexing match

当我在单元格内输入这段代码时,它会起作用

=MATCH(1;INDEX(($B:$B="Some_value1")*($D:$D="Some_value2");0);0)

当我将其“翻译”为 VBA 代码时,出现类型不匹配错误。

Debug.Print Application.WorksheetFunction.Match(1, Application.WorksheetFunction.Index((Range("B:B") = "Some_value1") * (Range("D:D") = "Some_value2"), 0), 0)

那么谁能指出我的错误在哪里,或者我做得对吗?

提前致谢

最佳答案

请记住,内部矩阵反射(reflect)了基于工作表逻辑的条件(返回 0 或 1 个单元格值的数组),看来您至少必须在 INDEX 部分中执行评估:

Debug.Print WorksheetFunction.Match(1, WorksheetFunction.Index(Evaluate("($B:$B=""Some_value1"")*($D:$D=""Some_value2"")"), 0), 0)

或者计算整个表达式:

Debug.Print Evaluate("=MATCH(1,INDEX(($B:$B=""Some_value1"")*($D:$D=""Some_value2""),0),0)")

关于Excel VBA 匹配函数内的索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65458446/

相关文章:

mysql - 具有多个索引的学说 2

c# - 在 C# 中使用互操作以独占模式打开 excel 文件

vba - 运行时错误 3075 缺少运算符

vba - #NAME 模块和函数同名

Mysql Order by 子句使用 "FileSort"

indexing - 在 RavenDB 中创建更多类似的内容

python - 使用 xlwings 读取 Excel 表格标题

vba - 在 Excel VBA 中设置默认 TextBox.Value TypeName

excel - VBA调用SAP事务

VBA AddressOf Crash Office 应用程序