Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Integral VBA Laufzeitfehler' 13

Integral VBA Laufzeitfehler' 13
05.09.2017 15:59:11
Groes
Hallo,
bei meinem vorliegenden Code möchte ich ein bestimmtes numerisches Integral berechnen lassen. Jedoch findet sich in der Reihe mit "Integral = Integral..." ein Fehler, den ich nicht beseitigt bekomme. Setze ich in FunkForm einen String "2x+3" ein, funkt. es, genauso wie mit "2x+3.5" (also inkl. Double im String). Kommt der Double Wert vor das x , z.B. "2.5x+3" erhalte ich den Laufzeitfehler' 13' Typen unverträglich.
Option Explicit
Sub Makro1()
Dim dX As Double
Dim lX As Long
Dim AnzSchritt As Long
Dim Integral As Double
Dim dMin As Double
Dim dMax As Double
Dim FunkForm As String
dMin = Cells(4, 2).Value
FunkForm = Cells(4, 1).Value
dMax = Cells(4, 3).Value
AnzSchritt = Cells(4, 4).Value
dX = (dMax - dMin) / AnzSchritt
For lX = 1 To AnzSchritt
Integral = Integral + Evaluate(Replace(FunkForm, "x", Replace(dMin, ",", "."))) * dX + 0.5 * dX  _
* Evaluate(Replace(FunkForm, "x", Replace(dMin + dX, ",", ".")))
dMin = dMin + dX
Next lX
Cells(4, 5).Value = Integral
End Sub

Es wäre super, wenn mir jemand bei diesem Code helfen könnte.
MfG
Carina
Anzeige

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Integral VBA Laufzeitfehler' 13
05.09.2017 16:11:29
onur
Da du die datei nicht gepostet hast, kann ich nix testen.
Aber bei einer solch langen Zeile macht es Sinn, sie zu splitten, um ze erfahren, wo genau der Fehler erscheint.
z, B.:
Integral = Integral + Evaluate(Replace(FunkForm, "x", Replace(dMin, ",", ".")))*dx
Integral = integral + 0.5 * dX * Evaluate(Replace(FunkForm, "x", Replace(dMin + dX, ",", ".")))

Notfalls könnte man auch noch weiter splitten.
Anzeige
In der Mathematik ist es zwar nicht üblich, ...
06.09.2017 01:51:04
Luc:-?
…einen Operator zwischen 2.5 und x zu setzen, Carina,
in Xl aber schon (und unbedingt erforderlich!). Anderenfalls würdest du eine UDF benötigen, die einen mathe­matisch notierten FmlText umsetzen kann, wie bspw hier zu sehen ist:
H10: 2,5x+3 → ƒ(x=2)=8 aus =T2Form(H10;;2)
H11: 2x²+2x+z → ƒ(x=3, z=4)=28 aus =T2Form(H11;;3;4)
Auf irgendeine (deine) Weise versuchst du hier quasi Ähnliches, nur hatte ich in dieser alten, nicht publikationsfähigen UDF keinen Operator vergessen… ;-]
🙈 🙉 🙊 🐵 Gruß, Luc :-?
Besser informiert mit …
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige