excel - Excel VBA 从嵌套函数中提取值
问题描述
是否可以在 VBA 中提取嵌套子函数的结果值?
例如,从这个 INDEX-MATCH 查找函数中,我想从两个MATCH()
函数的结果中找到值:
=+INDEX(Sheet3!$B$5:$I$15;MATCH($A6;Sheet3!$A$5:$A$15;0);1)
我正在寻找一个可以将嵌套MATCH()
函数的值作为 VBA 代码中的输入返回的宏。也就是说,我意识到我可以提取MATCH()
子函数并让 VBA 将其粘贴为值。我想要的是确定MATCH()
函数的值并在我的 VBA 脚本中使用它进行计算。
解决方案
由于我没有完全按照您的意思进行操作,所以我猜一猜……您想单独使用 match() 场景吗?
dim x as long, y as long, z as string
x = application.match($A" & ActiveCell & ",Sheet3!$A$5:$A$15,0)"
y = x*3 'perform some work using the row number x, knowing match of 1 = row 5 on sheet3
z = application.index(Sheet3!$B$5:$I$15," & y & ")"
更进一步,您可以利用所述算术匹配值。
本质上,匹配只提供数组中的行号,所以我不知道您所指的“提取”是什么。如果您要提取一个匹配的值,那么您最终会得到 A6 中的(来自您的示例)的内容。
编辑:更新代码以使其可用(以前只是给出了一个概念)
dim x as long, y as long, z as string
with sheets("Sheets3")
x = application.match(ActiveCell.value,.range(.cells(5,"A"),.cells(15,"A")),0)
y = x*1 'perform some work using the row number x, knowing match of 1 = row 5 on sheet3
z = application.index(.range(.cells(5,"B"),.cells(15,"B")),y) 'This index was changed to be a SINGLE COLUMN (was B5:I15)
end with
推荐阅读
- python - Python OS:无法删除文件,因为它正在被另一个进程使用 - 即使在关闭文件之后
- centos7 - 需要帮助将 rpm 格式程序安装到 CentOS 7
- kubernetes - Kubernetes Coredns 无法与 IBM DNS 服务器通信(Coredns 日志显示 - i/o 超时)
- python - Gtk treeview selection 选择并返回
- php - AWS S3 一种在 PHP 中克隆文件的简单方法
- python - 为文件中字符的特定位置创建字典
- flutter - 当应用栏出现在颤动中时,我无法更改 Android 状态栏颜色
- java - 在 macOS BigSur 中更改 java 版本
- gpu - 最大流量 GPU 实现
- c++ - C++ 将预先保留的哈希映射(std::unordered_map)与整数键和连续数据数组(std::vector)进行比较