我正在尝试一个简单的VBA程序,看起来像这样:
Function NotWorking() As Single
If Range("C3") = 0 Then
NotWorking = "=0.6*7"
Else
NotWorking = 1.2
End If
End Function
如果单元格C3的值为0,则函数NotWorking必须在当前单元格中返回* = 0.6 * 7 *的结果,即4,2。如果C3中的值不为0,则当前单元格必须返回1,2。
就我而言,事情不是我预期的方式。在当前单元格中,我键入= NotWorking()。如果C3不是0,我获得1,2,但是当我适合0到C3时,当前单元格返回#VALUE。
为什么这段代码不起作用?
最好的问候和提前感谢!
我注意到"=0.6*7"
是一个字符串,而不是一个数字,但1.2
是一个数字。
您已指定该函数返回单个函数,但"=0.6*7"
不是单个函数。
不要试图从例程中返回它,而是从例程中伸出到表单。
Sub NotWorking()
Dim src As Range
Dim dst As Range
Set src = Range("C3")
Set dst = Range("E3")
If src.Value = 0 Then
dst.Formula = "=0.6 * 7"
Else
dst.Value = 1.2
End If
End Sub