Excel VBA - 将字符串公式转换为一系列单元格中的Excel计算

时间:2016-09-14 17:07:46

标签: excel vba excel-formula

我只是想知道如果没有循环可以做到这一点 - 在我的Excel工作表中,比方说,Range("A1:C10")我有文本连接公式,一旦连接,就会创建真正的Excel函数。

作为一个愚蠢的例子,假设我在单元格A1中有以下内容:

A1: ="=Sum(D"&C2&":E"&C3&")"

现在,我知道在VBA中,我可以针对任何一个特定单元格执行以下操作:

Range("A1").Formula = Range("A1").Text

它会将我的文本公式转换为Excel公式并对其进行评估。

现在,我很好奇的是,是否有办法说出来,例如:

Range("A1:C10").Formula = Range("A1:C10").Text

不单独循环每个单元格?

另外,我不能使用INDIRECT(),不幸的是,我的公式是指封闭的工作簿:/

任何想法??

2 个答案:

答案 0 :(得分:1)

Range.Text包含单元格值的字符串表示形式。使用Range.Value访问实际计算值(我怀疑是您之后的事情) - 试试这个:

Range("A1:C10").Formula = Range("A1:C10").Value

答案 1 :(得分:0)

不确定这是否是您要做的,但例如,如果您使用:

Range("A1:C10").Formula = "=Sum(D1:E1)"

然后相对引用将自动调整:

A1: =Sum(D1:E1)
A2: =Sum(D2:E2)
B1: =Sum(E1:F1)
... etc.