从单元格中获取公式-VBA

Bra*_*mat 1 excel vba excel-vba excel-formula

我正在编写一个VBA代码,例如,我需要在一张工作表中引用另一张工作表中的公式:在工作表A中的单元格(1,3)中有一个公式

"=R[-1]C*R[-2]C"
Run Code Online (Sandbox Code Playgroud)

我想在单元格(1、3)中的工作表B中放入公式

"=A!R[-1]C*A!R[-2]C"
Run Code Online (Sandbox Code Playgroud)

我只想将公式保存在字符串中-

"=R[-1]C*R[-2]C"
Run Code Online (Sandbox Code Playgroud)

并手动进行我需要的调整。

所以我的问题是:

  • 如何在单元格中获取公式?当我写的时候"temp=worksheets("A").cells(1,3)"
    我从单元格而不是公式中获取值。

pax*_*blo 5

您可以使用以下方法在一个单元格中(A1在这种情况下)获取(并设置)公式:

Range("A1").Formula
Run Code Online (Sandbox Code Playgroud)

(有关详细信息,请参见此处)。

这只是回来作为一个字符串,所以你可以评估/与正规VBA字符串函数一样操纵它leftrightmidinstr等等。

根据链接页面,为常数单元格返回的公式只是常数本身,而空白单元格则返回""

您可以使用该信息来确定它是否实际上是公式化的。

  • @Bramat 您可以使用 `Range` 对象的 `HasFormula` 属性 (2认同)