Wenn dein Problem oder deine Frage geklärt worden ist, markiere den Beitrag als "Lösung",
indem du auf den "Lösung" Button rechts unter dem entsprechenden Beitrag klickst. Vielen Dank!
ich habe ein Excel Sheet erstellt in dem aus einer Ansammlung von Messdaten die Standardabweichung in einem Feld berechnet wird. Dieses Feld lese ich dann aus der der xls (es muss xls sein) Datei aus. Erstmal habe ich wirklich jede Moeglichkeit probiert, das Feld auszuelesen ohne eine Ausgabe im Variant Format zu erhalten. Aber dies scheint ohne das Office Kit von NI nicht moeglich. (Ich benutze ActiveX siehe Anhang) Nun entsteht folgendes Problem. Ich wandle die Variant Variable mittels Variant to Data in einen String um. Die Variant Ausgabe sieht so aus, zb Value -> 28.469E-6 und die einfach Umwandlung in den String liefert eine Zahl. Diese ist voellig richtig solang der Wert im Excel Sheet groesser als 0.1 ist. Jetzt geht aber irgendwie etwas bei der Umwandlung in den String schief, denn sobald der Wert <0.1 wird, ist die Ausgabe als String 9.xxxxx. Naehert sich dieser String wieder einer Zahl kleiner eins an springt der String wieder zu 9.xxxxxx. D.h. er erzwingt immer irgendwie eine Zahl die >1 ist, obwohl der eigentliche Wert schon 3*10^-6 und kleiner ist. Die Variant Ausgabe ist immer korrekt also scheint es am Auslesen nicht zu liegen. Zumal, wenn ich einfach eine feste Zahl in die xls eingebe und auslese ist der String auch mit beliebigen Kommastellen richtig.
Ich bin ratlos...
(Angehaengt ist der Mechanismus des Auslesens und ein Beispiel wo der Fehler auftritt. Ich habe "nur" LV6.1)
Allerdings funktioniert es hier bei mir mit LabVIEW 2009 problemlos auch mit Zahlen unter 0,5.
Hast Du keine neuere Version zur Verfügung?
Gruß Markus
-------------------------------------------------------------------------- Bitte stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort !!
--------------------------------------------------------------------------
aber gut dass du mir zumindest sagst es ist so wie in der Datei die du gepostet hast. Ich hätte viell. noch vermutet, dass ich mit den ActiveX Objekten Mist gebaut habe, denn ich hab mir das selbst zusammengebastelt. Könntest du viell. trotzdem einen Screenshot von der Auslese Routine mit anhängen?
Nein, Version 6.1 ist alles was ich hab. Gibt es viell. noch andere Optionen die Variant zu verwerten oder generell die Werte aus der xls anders zu erhalten? Es scheint ja komischerweise auch damit einherzugehen, dass ein Feld ausgelesen wird, was eine Formel (STDEV) enthält...
jetzt habe ich irgendwie den EDIT verhauen, hier nochmal:
---EDIT: Als Screenshot würde mich besonders GetXL_CellValue_String.vi interessieren, weil es eine solche vi in der Bibliothek von LV 6.1 nicht gibt. Es steht an mehreren Stellen einfach, die Prop Node von Read to Write ändern, danach ist aber die Range Method im Eimer...
19.08.2009, 21:43 (Dieser Beitrag wurde zuletzt bearbeitet: 19.08.2009 21:43 von Y-P.)
Developer Suite Core -> LabVIEW 2015 Prof.
2006
EN
71083
Deutschland
Probleme mit Variant aus Excel Sheet
Hier sind die Screenshots.
Gruß Markus
-------------------------------------------------------------------------- Bitte stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort !!
--------------------------------------------------------------------------
vielen dank erstmal fuer deine muehe, ich hatte es bis auf eine nuance gleich, hab diese geandert und das selbe Problem besteht weiterhin genau so, gibt es noch eine andere Moeglichkeit ausser active x und diesem office kit? oder ist es moeglich in einer excel tabelle die zahl von der formel zu trennen, denn wenn ich einfach zahlen einlese stimmt alles, nur mit dem feld wo die zahl durch eine formel entsteht kommt LV nicht klar...
Anstelle des Methodenknotens "Range.Value" könntest du auch versuchen die Eigenschaft ".Value2" oder gleich ".Text" der Range auszuwerten.
.Value2 würde dir dann wieder Werte wie 28.469E-6 liefern, wogegen
.Text direkt einen String liefert wie 0,00002846, den du ja dann nach DBL umwandeln könntest.
Leider hab ich kein LV6.1 zum ausprobieren. Mit LV8.6 klappts aber.
Gruß SeBa
EDIT:
.Text liefert bei sehr kleinen Zahlen wohl auch Exp. Notation... aber du kannst ja das Format der Zelle in Excel direkt auf Zahl mit XYZ Nachkommastellen setzen. Dann bekommst du immer eine Zahl mit Nachkommastellen ohne Exp.
Dieser Beitrag soll weder nützlich, informativ noch lesbar sein.
Er erhebt lediglich den Anspruch dort wo er ungenau ist, wenigstens eindeutig ungenau zu sein.
In Fällen größerer Abweichungen ist es immer der Leser, der sich geirrt hat.
Rette einen Baum!
Diesen Beitrag nur ausdrucken, wenn unbedingt nötig!
Ok Leute, ich entschuldige mich fuer diese Schande, aber von Seba kam der entscheidende Hinweis. Der Textknoten reduziert die Kommastellen bis zur ExpDarstellung so, dass die ganze Zahl ins Fenster passt. Die Funktion Value dagegen, naja, zeigt 15-20 Stellen vorher and, sodass die Exponentendarstellung durch das zu kleine Fenster verschluckt wurde, es tut mir wirklich aeusserst leid und ich danke fuer die umfangreiche Hilfe
Developer Suite Core -> LabVIEW 2015 Prof.
2006
EN
71083
Deutschland
Probleme mit Variant aus Excel Sheet
Danke für die Rückmeldung.
Gruß Markus
' schrieb:Ok Leute, ich entschuldige mich fuer diese Schande, aber von Seba kam der entscheidende Hinweis. Der Textknoten reduziert die Kommastellen bis zur ExpDarstellung so, dass die ganze Zahl ins Fenster passt. Die Funktion Value dagegen, naja, zeigt 15-20 Stellen vorher and, sodass die Exponentendarstellung durch das zu kleine Fenster verschluckt wurde, es tut mir wirklich aeusserst leid und ich danke fuer die umfangreiche Hilfe
-------------------------------------------------------------------------- Bitte stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort !!
--------------------------------------------------------------------------