我想将现有的excel公式绘制到IF语句中。
简单的值是不够的,因为在VBA代码之前编写的公式已消失。
所以我找到了一种将公式绘制到代码中的方法:
https://www.excelcampus.com/vba/writing-formulas-with-macros/
但是为了这种情况,如下:
If cbleven.Value = True Then
ActiveSheet.Cells(53, 4).Value = ActiveSheet.Cells(53, 4).Value - 1
ActiveSheet.Cells(51, 4).Formula = "=C52" + 2
End If
我遇到错误:类型不匹配
在这种情况下,我必须做些不同的事情。可以在这里找到另一种解决方案:
Type mismatch when setting a formula into a cell with VBA
,关于我准备的代码如下:
Sub CableOddEven()
Dim cblodd As Range
Dim wsca As Worksheet
Dim fm As Formula
Set wsca = ActiveSheet
Set cblodd = wsca.Range("C52")
Set fm = AverageIfs("=C51")
End If
If cbleven.Value = True Then
ActiveSheet.Cells(53, 4).Value = ActiveSheet.Cells(53, 4).Value - 1
ActiveSheet.Cells(51, 4).Value = fm + 2
'ActiveSheet.Cells(51, 4).Formula = "=C52" + 2
End If
End Sub
现在,调试器突出显示Dim fm as Formula
,其中出现错误提示:未定义用户定义的类型。
有什么方法可以让我的公式在IF条件下可以使用宏代码?