Wenn ich einen Wert in eine Zelle eingebe, wird er wie erwartet gespeichert. Wenn ich den Wert jedoch über VBA-Code eingebe, wird er falsch gespeichert. Genauer gesagt habe ich die Höhe von etwas berechnet und der resultierende Wert ist 1,15. Die Zahl wird korrekt angezeigt, aber wenn ich auf die Zelle klicke, wird tatsächlich die Zahl 1,14999997615814 gespeichert. Es gibt eine andere Zelle, die diese Zahl oder je nach Bedingung eine andere Zahl verwendet. Diese Zelle zeigt immer die tatsächlich gespeicherte Zahl (1,14999997615814) an, was falsch ist. Dies betrifft ein technisches Dokument, das von Regierungsingenieuren geprüft wird. Selbst eine kleine Abweichung führt also dazu, dass das Dokument abgelehnt wird. Ich habe versucht, die Zahl als Text zu speichern (kein Unterschied), sie vor dem Speichern zu runden (kein Unterschied), sie vor dem Speichern mit einfacher oder doppelter Genauigkeit zu berechnen, auch hier ohne Unterschied in Excel. Dies geschieht nicht bei allen Werten, aber wenn das berechnete Ergebnis 1,15 war, zeigt es dieses Verhalten. Die einzige Möglichkeit, die Zahl korrekt zu speichern, besteht darin, sie manuell einzugeben, und das macht den gesamten Zweck der Berechnung des Wertes zunichte. Weiß jemand, was passiert und wie ich Excel zwingen, nötigen oder bestechen kann, damit es sich richtig verhält?
Ich bin dir dankbar.
Antwort1
Ich weiß immer noch nicht, was das Problem tatsächlich verursacht hat. Ich werde Sie nicht mit dem Code langweilen, der verwendet wurde, um das Ergebnis zu erzielen – kurz gesagt geht es nur darum, die zu addierenden Zahlen zu finden und zu addieren. Die Werte sind (0,0747*2)+(0,25*2)+0,05006, was 1,15 ergibt. Die einzige Lösung, die funktioniert hat, war, die Ergebnisse der Zelle als Text zuzuweisen und sie dann wie folgt in eine Zahl umzuwandeln:
ws.Range("L24").Value = "'" & JobSettings.BrgHeight
ws.Range("L24").Select
Selection.NumberFormat = "General"