Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
620to624
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
620to624
620to624
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

dubioser Run-time error '13': Type mismatch

dubioser Run-time error '13': Type mismatch
07.06.2005 13:23:18
michael
Hallo,
ich lese per Macro einen Messwert von einem Gerät ein.
Wenn ich im Macro mit dieser Zahl weiterrechnen will kommt obige Meldung...
Range("A1") = Messwert*1000*...
oder
a = Messwert
Range("A1") = a*1000*...
Ich habe auch versucht dem Messwert eine Variable zuzuornen und diese Variable in die Zelle zu schreiben Type mismatch...
a = Messwert
Range("A1") = a
Auch hab ich versucht sowohl Dim a oder Messwert (und auch die anderen Faktoren) As Integer od Long od Single od Double oder Variant immer Type mismatch.
Nun dachte ich, dass vielleicht der Wert als Text übergeben wird -
wenn ich aber den Wert direkt in eine Zelle schreiben lasse, geht das ohne Probleme - es ist eine ganzzahlige Zahl zw. 0 - 32000.
Range("A1") = Messwert
Hat dazu jemand eine Idee an was es noch liegen könnte...
Falls es doch ein text ist wie könnte ich im Macro Text in eine Zahl umwandeln?
Danke und viele Grüße
Michael

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: dubioser Run-time error '13': Type mismatch
07.06.2005 13:37:07
Heiko
Hallo Michael,
suche mal in der VBA Hilfe nach Typ-Umwandlungsfunktionen, da sind alle Funktionen beschrieben mit denen du Typen wandeln kannst.
Mit dieser Zeile könntest du dir übrigens mal anzeigen lassen was Messwert den für ein Typ ist.
MsgBox TypeName(Messwert)
Gruß Heiko

PS: Rückmeldung wäre nett !
AW: dubioser Run-time error '13': Type mismatch
07.06.2005 14:05:08
michael
Hallo Heiko,
danke für die Antwort.
dein vorgeschlagener Test ergab Variant() für den Messwert.
Ich hatte keine der Variablen vorher deklariert.
Die in der Multiplikation beteiligten anderen Variablen werden als double erkannt.
So - was mache ich nun?
Kannst du mir weiter helfen?
Danke
Michael
Anzeige
AW: dubioser Run-time error '13': Type mismatch
07.06.2005 14:09:36
Heiko
Hallo Michael,
mit den paar Codeausschnitten die ich bisher gesehen habe, kann ich dir auch nicht weiter helfen.
Mehr Code, dann vieleicht mehr Ideen.
Gruß Heiko
AW: dubioser Run-time error '13': Type mismatch
07.06.2005 14:30:11
michael
Hallo Heiko,
Ich hab nun die Umwandlung versucht..
a=CDbl(Messwert) - Type Missmatch
oder
a= Messwert
b= CDbl(a) - Type Missmatch
ich weiß nicht mehr weiter...
DDERequest(channelNumber1, "P(8)") babe ich vereinfacht als Messwert bezeichnet
das Problem taucht ganz unten auf in der Zeile
'DDE 1
Cells(n + 1, 17) = DDERequest(channelNumber1, "P(8)") * dde1 * gcf / 320 * 100
dde1 und gcf sind double
~f~
~f~
'Open DDE-link
channelNumber1 = Application.DDEInitiate(app:="FLOWDDE", topic:="C(1)")
channelNumber2 = Application.DDEInitiate(app:="FLOWDDE2", topic:="C(1)")
'Write Setpoint Start
Do
If m = 10 Then Exit Do 'verhindert Endlosloop
m = m + 1

'DDE 1
DDEPoke channelNumber1, "P(9)", (Sheets(1).Cells(4, 2))
Sheets(1).Cells(4, 3) = DDERequest(channelNumber1, "P(9)")
'DDE 2
DDEPoke channelNumber2, "P(9)", (Sheets(1).Cells(11, 2))
Sheets(1).Cells(11, 3) = DDERequest(channelNumber2, "P(9)")
Loop While ((Sheets(1).Cells(4, 2).Value) &lt&gt (Sheets(1).Cells(4, 3).Value)) And ((Sheets(1).Cells(11, 2).Value) &lt&gt (Sheets(1).Cells(11, 3).Value))

Do
n = n + 1
Sleep 197 '200 'Zeit in msec

With Cells(n + 1, 16)
.NumberFormat = "[hh]:mm:ss.000"
.Value = (Timer - sngStart) / 86400
End With

'DDE 1
Cells(n + 1, 17) = DDERequest(channelNumber1, "P(8)") * dde1 * gcf / 320 * 100
'DDE 2
Cells(n + 1, 18) = DDERequest(channelNumber2, "P(8)") * dde2 * gcf / 320 * 100

Loop While n &lt= 9000 '9000 = 30 min bei einem 200ms Intervall

Anzeige
AW: dubioser Run-time error '13': Type mismatch
07.06.2005 15:06:56
Heiko
Hallo Michael,
woran das genau liegt kann ich dir leider auch nicht sagen. Habe noch nicht mit DDEChannel gearbeitet.
Einen Tipp, nicht schön aber vielleicht hilft es, hätte ich noch.
Wenn du, wie im ersten Thread beschrieben, den Wert direkt in die Zelle schrieben kannst, dann schreibe ihn doch in die Zelle und lese ihn sofort wieder aus um ihn dann zu manipulieren.
Also nach dem Motto,
Cells(n + 1, 17) = DDERequest(channelNumber1, "P(8)")
Cells(n + 1, 17) = cdbl(Cells(n + 1, 17)) * dde1 * gcf / 320 * 100

Villeicht hilft es ja ?!
Ansonsten bin ich nun erstmal weg, wenn der Tipp nicht hilft solltest du die Frage als offen markieren.
Gruß Heiko

PS: Rückmeldung wäre nett !
Anzeige
... vielleicht hat jemand noch eine Idee?
07.06.2005 19:33:58
michael
Hallo Heiko,
ja ich denke die Möglichkeit über den Umweg ein- und auslesen könnte funktionieren - gut Idee.
Mir wäre aber wohler wenn es eine Lösung ohne den Umweg gäbe...
Vielleicht hatte ja jemand noch eine Idee dazu.
Trotzdem vielen Dank!
Michael
AW: ... vielleicht hat jemand noch eine Idee?
08.06.2005 15:04:16
Volker
Hallo Michael,
hab jetzt euren Dialog nicht bis ins Detail verfolgt, aber eines habt Ihr nicht probiert:
welches Format die Zelle nach Einlesen des Wertes hat und ob du mit dem Wert rechnen kannst.
Mein Verdacht wäre, dass dem Wert irgendein Zeichen voran- oder nachsteht, das von Excel nicht dargestellt werden kann und darum nicht sichtbar ist.
Ich hatte mal so einen Effekt. Wenn du mit dem Cursor in die Bearbeitungszeile gehst, kannst mit den Pfeiltasten durch den Zellwert wandern und feststellen, wieviele Zeichen er wirklich hat.
Wenn das nicht ist dann hilft dir nur noch ein Wunder ;-(
Gruß
Volker
Anzeige
AW: ... vielleicht hat jemand noch eine Idee?
08.06.2005 18:05:27
michael
Hallo Volker,
danke für die Hilfe.
Wie der Eintrag in der Zelle aussieht hab ich noch nicht getestet.
Wenn ich aber den Messwert in eine Zelle schreibe und in wieder vom Macro zurücklese kann ich mit dem zurückgelesenen Wert rechnen....Format double. HAb ich über MsgBox wie oben beschrieben getestet.
Trotzdem danke und wartend aufs Wunder...
Michael
Nur nicht aufgeben (o.T.) ;-)
08.06.2005 18:08:22
Volker
.

220 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige