【发布时间】:2018-06-06 01:59:41
【问题描述】:
我的最终目标是使用 VBA 中的用户定义函数来缩短这个公式,以下是我的参数 A1:C10、A1:A10、E1、B1:B10、F1(这会有所不同,这只是一个纯粹的例子)
Excel公式:
=index(A1:C10,match(1,(A1:A10=E1)*(B1:B10=F1),0),G1)
使用用户定义的函数,它会是这样的:
=pick(A1:C10, A1:A10, E1, B1:B10, F1, G1)
我的 VBA 代码是这样的,但是,它不起作用。请高手,帮帮我。非常感谢。
Function pick(range As range, con1 As range, con1a As range, con2 As range, con2a As range, col As range) As Variant
pick = WorksheetFunction.Index(range, Match(1, (con1 = con1a) * (con2 = con2a), 0), col)
End Function
【问题讨论】:
-
VBA不能做
con = con1a等矩阵运算。您需要循环执行此操作。 -
嗨,你介意分享一下你将如何做这种事情的代码吗?对不起,我是菜鸟,希望能向这个小练习者学习。谢谢
-
展示一个具有预期输出的示例也会有所帮助。
标签: vba function matrix range excel-udf