Hallo Community,
die Fehlermeldung: „Ein in der Formel verwendeter Wert ist vom falschen Datentyp.“ und der Zellen-Inhalt #WERT! bringt mich zur Verzweiflung...
Ich habe in Excel 2019 Professional eine VBA-Schnittstelle zu meiner Delphi-DLL. Die VBA besteht im Wesentlichen aus folgenden Teilen:
Diese Vorgehensweise habe ich in hunderten anderen VBA-Schnittstellen, welche ohne Probleme funktionieren. Nur das hier scheint richtig verhext zu sein. Die Anweisung in der Zeile
liefert für Vorhanden = Wahr und V_Strom den korrekten Zahlenwert (z. B. 70,074071...), den ich im Debugger sehen kann. Das Programm arbeitet danach folgende Zeile(n) ab:
und verabschiedet sich mit #WERT! in der Zelle der Tabelle, ABER wenn ich das Programm im Debugger schrittweise ablaufen lasse, läuft das Programm manchmal auch regulär weiter über die Anweisungszeilen
und steht ab und zu doch der korrekte Zahlenwert in der Zelle. Nach Speichern, Schließen und erneutem Öffnen der Excel-Arbeitsmappe steht wieder #WERT! in der Zelle und das Spiel beginnt aufs Neue.
Was mache ich falsch? Irgendetwas habe ich bestimmt übersehen!
Leider sehe ich den Balken im eigenen Auge nicht. Kann mir jemand bitte helfen?
Vielen Dank für Eure Tipps und Hinweise im Voraus!
Viele Grüße
Andreas
die Fehlermeldung: „Ein in der Formel verwendeter Wert ist vom falschen Datentyp.“ und der Zellen-Inhalt #WERT! bringt mich zur Verzweiflung...
Ich habe in Excel 2019 Professional eine VBA-Schnittstelle zu meiner Delphi-DLL. Die VBA besteht im Wesentlichen aus folgenden Teilen:
Quellcode
- Option Explicit
- Option Base 1
- Private Declare Function BePu Lib "ChemWings.Flow.dll" _
- (ByRef Rohrleitung_Polynom_Koef_Vektor#, ByVal Anzahl_Werte_Rohr&, ByRef Pumpe_Polynom_Koef_Vektor#, ByVal Anzahl_Werte_Pumpe&, ByRef V_Strom_Betriebspunkt#) As Boolean
- ...
- Public Function Betriebspunkt(Rohrleitung_Koeffizienten_Vektor, Pumpe_Koeffizienten_Vektor)
- Dim n_Rohr As Long ' Anzahl der Elemente der Felder
- Dim n_Pumpe As Long ' Anzahl der Elemente der Felder
- ...
- Dim PoKoeff_Rohr() As Double
- Dim PoKoeff_Pumpe() As Double
- Dim V_Strom As Double
- Dim Vorhanden As Boolean
- ...
- n_Rohr = Rohrleitung_Koeffizienten_Vektor.Rows.Count
- n_Pumpe = Pumpe_Koeffizienten_Vektor.Rows.Count
- ...
- ReDim PoKoeff_Pumpe(1 To n_Pumpe)
- ReDim PoKoeff_Rohr(1 To n_Rohr)
- ' Koeffizienten_Vektor in einen Delphi-kompatiblen Vektor umwandeln:
- ...
- Vorhanden = BePu(PoKoeff_Rohr(1), n_Rohr, PoKoeff_Pumpe(1), n_Pumpe, V_Strom)
- If Vorhanden Then
- Betriebspunkt = V_Strom
- Else
- Betriebspunkt = "NV"
- End If
- End Function
Diese Vorgehensweise habe ich in hunderten anderen VBA-Schnittstellen, welche ohne Probleme funktionieren. Nur das hier scheint richtig verhext zu sein. Die Anweisung in der Zeile
liefert für Vorhanden = Wahr und V_Strom den korrekten Zahlenwert (z. B. 70,074071...), den ich im Debugger sehen kann. Das Programm arbeitet danach folgende Zeile(n) ab:
und verabschiedet sich mit #WERT! in der Zelle der Tabelle, ABER wenn ich das Programm im Debugger schrittweise ablaufen lasse, läuft das Programm manchmal auch regulär weiter über die Anweisungszeilen
und steht ab und zu doch der korrekte Zahlenwert in der Zelle. Nach Speichern, Schließen und erneutem Öffnen der Excel-Arbeitsmappe steht wieder #WERT! in der Zelle und das Spiel beginnt aufs Neue.
Was mache ich falsch? Irgendetwas habe ich bestimmt übersehen!
Leider sehe ich den Balken im eigenen Auge nicht. Kann mir jemand bitte helfen?
Vielen Dank für Eure Tipps und Hinweise im Voraus!
Viele Grüße
Andreas
Wenn man seinem Nächsten einen steilen Berg hinaufhilft, kommt man selbst dem Gipfel näher.
John C. Cornelius
John C. Cornelius
Dieser Beitrag wurde bereits 11 mal editiert, zuletzt von „Andreas_500“ ()