【问题标题】:Using an Excel UDF inside another UDF在另一个 UDF 中使用 Excel UDF
【发布时间】:2013-11-27 23:14:19
【问题描述】:

是否可以在另一个 UDF 中使用一个 UDF?

例如 A、B、C、D 列。

UDF1(w,x) - 计算 A 的最大值和 B 的最大值的乘积
UDF2(y,z) - 计算 C 的最大值和 D 的最大值的乘积

UDF1 和 UDF2 工作正常。

UDF3 计算 UDF1 和 UDF2 的乘积(因为在单元格中计算是微不足道的)

我可以制作将 (w,x,y,z) 作为输入的 UDF3,然后将 w,x 传递给 UDF1 并将 y,z 传递给 UDF2 - 从 UDF1 和 UDF2 返回答案并计算乘积吗?

(我知道还有其他方法可以做我所描述的事情 - 这是我感兴趣的概念)--

背景: 我正在尝试在 Excel 中编写编程示例,首先构建简单的 UDF,然后回收它们(有点像子例程)——我再次感谢有更好的方法来做到这一点。

干杯 G

【问题讨论】:

  • oops@pnuts: 刚刚看到你的评论 :(
  • 嗯,你为什么不试试呢?

标签: excel user-defined-functions vba


【解决方案1】:

我可以制作将 (w,x,y,z) 作为输入的 UDF3,然后将 w,x 传递给 UDF1 并将 y,z 传递给 UDF2 - 从 UDF1 和 UDF2 返回答案并计算乘积吗?

是的。

这是一个例子。将其粘贴到模块中。我正在使用SUM 进行演示。

Function MainF(rng1 As Range, rng2 As Range, _
rng3 As Range, rng4 As Range) As Long
    Dim x As Long, y As Long

    x = a(rng1, rng2)
    y = b(rng3, rng4)

    MainF = x + y
End Function

Function a(rng1 As Range, rng2 As Range) As Long
    a = rng1.Value + rng2.Value
End Function

Function b(rng1 As Range, rng2 As Range) As Long
    b = rng1.Value + rng2.Value
End Function

【讨论】:

  • @pnuts:如果使用 Excel-VBA 工作,应该添加 [excel-vba]。当用户想要指定他或她正在使用 mac 时添加 [excel-vba-mac],否则不需要。
  • @pnuts - 简洁明了。工作 - 和 aardvark123 - 从哪里开始完全精神障碍。需要朝着正确的方向轻推。谢谢 G
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-09-16
  • 1970-01-01
  • 1970-01-01
  • 2011-01-08
相关资源
最近更新 更多