在Clean Code in Excel?中,我寻找一种在Excel / VBA中实现复杂用户定义函数(UDF)的更简洁方法。
因此,假设我已在Excel中将函数f: A -> B
实现为UDF。让我们进一步假设我在单元格A1中有10个A值:A10和单元格B1中的"=f(A1)"
,自动完成到单元格B10。
现在,当一个新的A值到来时,我必须做两件事:
因为我的工作簿中有许多功能可以引用A值,所以我想自动完成第二步。
在我的函数/ Haskell中,我会得到as
的列表,并将bs列表表示为
bs = map f as
因此,当我更改了as
时,bs
只要重新评估就会更新。
我确信这可以在具有命名范围的标准Excel / VBA中干净地实现。我想象如下:
map f NamedAs
然后,当我将新的A值添加到范围" NamedAs"并重新评估工作表,我会完成。 (我不需要更改B列中的调用,只强制重新评估)
VBA版本"映射f NamedRange"实施??
PS:在写作时,在我看来,这个问题更多的是关于返回范围的函数的定义/用法 - 高阶可能是次要但有趣的话题......
PPS:我想知道在FP / Haskell和VBA中是否有人都是冗长的: - )
PPPS:不,我不能使用FCell。