excel - 匹配函数内的Excel VBA索引
问题描述
当我在单元格内输入它时,我有这段代码可以工作
=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)
那么谁能指出我的错误在哪里,或者我做得对吗?
提前致谢
解决方案
请记住,内部矩阵反映了基于工作表逻辑的条件(返回 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)")
推荐阅读
- wix - 使用从 RegistrySearch 设置的自定义操作属性为补丁 (.msp) 设置 INSTALLDIR
- vba - Powershell Wscript.Shell 弹出窗口超时不超时
- database-backups - 使用 codeigniter 4 进行数据库备份
- python - Python:如何计算入口点和点之间的运行差异?
- python - 数据框熊猫错误:在 groupby.rank 中没有要聚合的数字类型
- c - 运行并发子进程
- vscode-settings - 我的 keybindings.json 对 VSCode 没有影响
- swift - 快速按给定时间将日期排序为最接近的日期
- mysql - 我如何在 oracle 数据库中调用此函数?
- python-3.x - 从python中的字符串获取所有子字符串?