2016-09-14 143 views
0

我只是想知道这是否可以做到没有循环 - 在我的Excel表格中,比如Range("A1:C10")我有文本连接公式,一旦连接,创建真正的Excel功能。Excel VBA - 将字符串公式转换为单元格范围内的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()的,不幸的是,我的公式引用到关闭工作簿:/

任何想法?

+0

你为什么不想要循环?速度? – CRUTER

+0

'C2'和'C3'的范围是多少? 1到10? – Slai

+1

尝试'.Value'而不是'.Text' –

回答

1

Range.Text包含字符串表示单元格的值。该实际计算值(我怀疑是你追求的)使用Range.Value访问 - 试试这个:

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

不知道这是你正在尝试做的,但例如,如果你使用:

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

则相对引用将自动调整:

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

不幸的是,这不是我正在寻找的 - 我的公式非常复杂,只是一个简单的例子来显示我的意思是字符串连接...... @MatsMug得到了正确的答案。但感谢您的输入! –

相关问题