有没有一种方法可以检查活动单元格中的特定公式? 这是我运行的一个简单测试,不断返回“否”。

sub Test

    'Add formula to a Cell
    Range("J3").Select
    ActiveCell.FormulaR1C1 = "=R[-1]C+RC[-2]-RC[-1]"

    If (ActiveCell.Formula = "=R[-1]C+RC[-2]-RC[-1]") Then
         MsgBox ("Yes")

    Else

         MsgBox ("No")

    End If
End Sub

* 更新 *这就是我的解决方法。

Sub Test()

    'Add formula to a Cell
    Range("J3").Select
    ActiveCell.FormulaR1C1 = "=R[-1]C+RC[-2]-RC[-1]"

    'Convert Formula in the Cell to a string
    Dim strFormula As String
    strFormula = ActiveCell.FormulaR1C1


    If (strFormula = "=R[-1]C+RC[-2]-RC[-1]") Then
         MsgBox ("Yes")
    Else
         MsgBox ("No")
    End If


End Sub

#1楼 票数:1

这很简单,接近您的建议:

If ActiveCell.FormulaR1C1 = "=R[-1]C+RC[-2]+RC[-1]" Then

 'Do Something

End If

但是请记住,比较非常非常严格-区分大小写和空格。

由于OP的其他问题而进行编辑

根据THIS MSDN LINK, Range.FormulaR1C1属性返回Variant类型。 在我的情况下,我得到了自动转换,这使我的代码可以正常工作。 但是,为避免出现任何问题,您可以通过以下方式进行转换:

If CStr(ActiveCell.FormulaR1C1) = "=R[-1]C+RC[-2]+RC[-1]" Then

 'Do Something

End If

#2楼 票数:0

我成功运行了以下代码。 我看不出太大的区别。

Private Sub Try_FormulaAsString()

Dim testString As String
testString = Range("J3").FormulaR1C1

If testString = "=R[-1]C+RC[-2]-RC[-1]" Then
    MsgBox "Yes"
Else
    MsgBox "No"
End If

End Sub

J3单元格包含公式“ = J2 + H3-I3”

我确实注意到您在上面的某些评论中最后一项的运算符有所不同,例如-RC [-1]与+ RC [-1]

有没有理由使用.FormulaR1C1代替.Formula ,这将使该公式更容易阅读,并减少在子程序错别字的机会呢?

  ask by Ollie translate from so

未解决问题?本站智能推荐:

1回复

将Excel公式单元格更改为VBA宏

请我需要更改此公式: 此公式给出两个日期之间的差额: 1)即K15:30/10/2017 2)今天() 最大倒数计时将从0开始。 我需要在宏中转换此公式,以便将这段代码插入由Private Sub Worksheet_Change(ByVal Target As Range)
1回复

Excel宏将公式结果写入单元格

我知道如何在宏中将公式写入单元格,但是我需要将此公式的输出写入单元格 不使用
2回复

Excel宏:设置单元格的公式

我正在编写一个宏,以将行插入所有选定的工作表中,然后将某些值设置为等于另一工作表中的值。 我已经设法使用以下代码插入行,但是在设置值时遇到了麻烦。 如果没有宏,我只需输入=InputC7输入即可作为工作簿中第一张纸的名称。
1回复

从VBA向Excel单元格添加公式

我有一个标签为my_new_name的工作表,并且想输入一个公式,在查看了其他堆栈溢出线程后,我想到了以下内容: 但是,这不起作用,并且错误带有“类型不匹配” 任何帮助都会很棒
1回复

Excel宏擦除单元格VBA

我正在尝试制作一个Excel宏,该宏在下一列上列出每个文件夹名称及其所有子文件夹,类似于命令提示符树命令。 我期望看到的是这样的: 请注意,文件夹2 4和5中没有文件夹,只有文件,我不希望它显示文件。 我重新打开了屏幕更新,因此我可以看到它的作用,它确实列出了在正确位置没有子文件夹的
3回复

Excel公式检查单元格内容

我正在尝试在运行时(huzzah)中为外接程序(double huzzah)创建一些条件格式,并且发现,显然,某些功能无法像正常工作表中那样使用。 (尝试创建引用我可以在单元格中调用的VBA函数的CF时,我只是收到一个无效的过程调用错误5,即使它位于加载项中而不是工作簿中;我也可以使用内置的我
1回复

使用BloombergBDH公式为VBA宏中的几个单元格

您是否认为可以使用BDH公式,但我们不使用一个证券的名称,而是使用单元格内的信息(假设在A栏中您拥有证券的ISIN,我希望价格在列上C在特定日期,B列中可用的日期:
1回复

运行VBA宏后缺少单元格中的公式

在D,E和F列下的“功率”表中,单元格中写有公式: 但是,运行以下宏(我认为)后,上述公式消失了。 这怎么发生的? 在运行宏时如何保留原始公式? 新编辑:抱歉,我省略了代码中的选项显式部分,就像这样- 新的编辑:FindColumn是如下定义的函数- 新的修改:下面是在“ Re