
Public Function Factt(a As Variant) As Double Dim g As Long, h As Double If Int(Evaluate(a))=Evaluate(a) then h = 1: For g = 1 To a: h = h * g: Next g Factt = h:Errr=0 Else Errr=1 End Function Sub Prova() On Error Resume Next Dim a As Variant, b As Variant, c As Byte b = "Factt(4.1) 1": a = Evaluate(b): c = Errr End Sub |
Public Function Factt(a As Variant) As Double Dim g As Long, h As Double If Int(Evaluate(a)) Then h = 1: For g = 1 To a: h = h * g: Next g Factt = h End If End Function Sub Prova() On Error Resume Next Dim a As Variant, b As Variant, c As Byte b = Factt(1 / 0.2): If Int(b) Then errr = 0 Else errr = 1 End If End Sub |
Public Function Factt(a As Variant) As Double Dim g As Long, h As Double If Int(Evaluate(a)) And Errr = 0 Then Errr = 0: h = 1 For g = 1 To a: h = h * g: Next g Factt = h Else Errr = 1 End If End Function Sub Prova() On Error Resume Next Dim a As Variant, b As Variant, c As Byte b = Factt(Factt(1.2) / 0.25) c = Errr End Sub |
Public Errr as Byte Public Function Factt(a As Variant) As Double Dim g As Long, h As Double If Int(Evaluate(a)) And Errr = 0 Then Errr = 0: h = 1 For g = 1 To a: h = h * g: Next g: Factt = h Else Errr = 1 End If End Function Sub Prova() Dim a As Variant, b As Variant, c As Byte a = "Factt(Factt(1.2) / 0.25)" b = Evaluate(a) c = Errr End Sub |
Public Errr As Byte Public Function Funz(a As String) As Double Funz = a + a If a > 700 Then Errr = 1 Else Errr = 0 End Function Sub Prova() Dim d As String, e As Double, f As Byte d = "Funz((3^Funz(2+1))+2)+23" e = Application.Evaluate(d):f = Errr End Sub |
