繁体   English   中英

VBA中的Excel公式

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM