[英]Excel formula within VBA
我有很多包含公式的单元格,然后使用VBA,此公式的结果就是变量的值,如下所示:
在单元格AS4
表上:
=SUMPRODUCT(MAX((ROW($AE$4:$AE$997))*($AE$4:$AE$997<>"")))
然后在我的VBA中:
numRows = ws.Range("AS4").Value
但是,这开始变得难以跟踪哪个单元正在馈入哪个变量,避免了意外覆盖纸张上的那些单元等。
如果可以的话,我需要能够在VBA中执行此计算,而无需在工作表中包含“计算单元”。
我发现有一种将公式与WorksheetFunction
一起使用的方法,但仅找到了简单的示例,无法使其适应我的情况。
numRows = WorksheetFunction.SumProduct(MAX((ROW($AE$4:$AE$997))*($AE$4:$AE$997<>"")))
不上班...
有没有办法做到这一点,还是我最好放弃使用公式和使用纯VBA方法的想法?
在SJR的帮助下,答案是:
numRows = [=SUMPRODUCT(MAX((ROW(Weights!$AE$4:$AE$997))*(Weights!$AE$4:$AE$997<>"""")))]
进一步的研究告诉我, evaluate(" ")
可以用方括号[
和]
代替。 虽然,如果我在此公式的组合中包含变量,或者该公式不是恒定的,那么我将不得不使用Evaluate
。
我还需要将工作表名称添加到公式中,因为此公式在工作表中不再起作用,并且AE4:AE997
不再引用正确的工作表。
上引号翻倍也是必要的,因为它是代码并看到"
不同,以一式的片材上
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.