Live-Forum - Die aktuellen Beiträge
Datum
Titel
24.04.2024 19:29:30
24.04.2024 18:49:56
24.04.2024 17:19:09
Anzeige
Archiv - Navigation
736to740
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
736to740
736to740
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

VBA: 2 gleiche Formeln => 2 verschiedene Ergebniss

VBA: 2 gleiche Formeln => 2 verschiedene Ergebniss
22.02.2006 14:56:36
Ina
Hallo Exceler,
ich bin auf ein Problem gestoßen und habe es zu folgendem vereinfacht:
(Inhalt der Datei "C:\Textdatei.txt" ist "AZxxx")

Private Sub CommandButton1_Click()
Set fs = CreateObject("Scripting.FileSystemObject")
Set f = fs.OpenTextFile("C:\Textdatei.txt", 1, False, TristateFalse)
Cells(1, 1) = Asc(f.read(1))
Cells(1, 2) = Asc(f.read(1))
f.Close
Set f = Nothing
Set f = fs.OpenTextFile("C:\Textdatei.txt", 1, False, TristateFalse)
Cells(1, 3) = (Asc(f.read(1)) * 2) + (Asc(f.read(1)) * 3)
f.Close
Set f = Nothing
Set f = fs.OpenTextFile("C:\Textdatei.txt", 1, False, TristateFalse)
Cells(1, 4) = (Asc(f.read(1)) * 2 ^ 1) + (Asc(f.read(1)) * 3 ^ 1)
f.Close
Set f = Nothing
Set fs = Nothing
End Sub

Ausgegeben werden 65, 90, 400 und 375.
65 = Asc("A") => richtig
90 = Asc("Z") => richtig
400 = 65 * 2 + 90 * 3 => richtig
375 = 65 * 2 ^ 1 + 90 * 3 ^ 1 => falsch (400 wäre richtig, weil 2 ^ 1 = 2 und 3 ^ 1 = 1)
Auf 375 kommt man wenn man 65 und 90 vertauscht. Das hieße aber es würde falsch herum aus der Datei gelesen werden. Das ist aber nicht generell so, da ja zumindest die Zellen A1, B1 und auch C1 die richtigen Werte enthalten. Auch "(Asc(f.read(1)) & (Asc(f.read(1))" würde richtigerweise "6590" liefern.
Wenn ich bei der zweiten Berechnung eines der beiden "Asc(f.read(1))" durch die entsprechende Konstante (65 bzw. 90) ersetze dann kommt das richtige Ergebnis 400.
Wenn ich alle "Asc(f.read(1))" durch "Asc("A")" bzw. "Asc("Z")" ersetze dann kommt ebenfalls das richtige Ergebnis 400.
Wenn ich VBS und MsgBox anstatt VBA und Zellen benutze, dann funktioniert das Script so wie es ist.
Handelt es sich hier nun um eine Bug von Excel oder um einen Denkfehler meinerseits?
Gruß und Danke
Ina

1
Beitrag zum Forumthread
Beitrag zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA: 2 gleiche Formeln => 2 verschiedene Ergebniss
22.02.2006 16:10:53
Luschi
Hallo Ina,
ich würde folgende Schritte ausführen:
- Öffnen der Textdatei
- jeden Lesevorgang in 1 Variable schreiben
- Schließen der Textdatei
- Weiterrechnen mit den Variablen
Gruß von Luschi
aus klein-Paris
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige