Weshalb wird in Excel Trim(Str(1)) nicht als solches erkannt?

Antworten
Nachbar
Neuling
Neuling
Beiträge: 5
Registriert: 04.04.2017, 16:00
Gender:

Weshalb wird in Excel Trim(Str(1)) nicht als solches erkannt?

Beitrag von Nachbar » 08.11.2017, 11:16

Hallo,
ich benutze Excel 2016 unter WIN10. Wenn ich in einem Makro in einer Zelle A1 den Wert Trim(Str(1)) als Standard, also ohne bestimmtes Zahlenformat, ablege und hinterher mit
If Range("A1").Value = Trim(Str(1)) Then
danach abfrage, ist das Ergebnis false. Frage ich hingegen mit
If Range("A1").Value = "1" Then
ab, ist das Ergebnis true. Obwohl Trim(Str(1)) und "1" dasselbe ist. Aber doch wohl nur scheinbar dasselbe.
Was ist der tiefere Sinn dieser Unterscheidung? Warum wird bei der Value-Abfrage zwischen dem Literal und dem Funktionsergebnis unterschieden? Weiß das jemand?
Danke und Grüße
Euer Nachbar

Tante Google

Weshalb wird in Excel Trim(Str(1)) nicht als solches erkannt?

Beitrag von Tante Google » 08.11.2017, 11:16


GwenDragon
Legende
Legende
Beiträge: 8912
Registriert: 20.07.2014, 12:25
Hat sich bedankt: 51 Mal
Danke erhalten: 38 Mal

Re: Weshalb wird in Excel Trim(Str(1)) nicht als solches erkannt?

Beitrag von GwenDragon » 08.11.2017, 11:24

Möglicherweise findet bei den Excel-Makros eine interne Umkonvertierung des Datentyps statt, da könnte Trim(Str(1)) eine Zeichenkette und "1" eine Zahl liefern.
Aber ich kenne mich mit den Unterschieden der Makros bei Exel-Versionen nicht aus.

Nachbar
Neuling
Neuling
Beiträge: 5
Registriert: 04.04.2017, 16:00
Gender:

Re: Weshalb wird in Excel Trim(Str(1)) nicht als solches erkannt?

Beitrag von Nachbar » 08.11.2017, 13:13

Das hatte ich ursprünglich auch vermutet. Aber tatsächlich liefert
If Trim(Str(1)) = "1" Then
das Ergebnis true. Daran liegt es also nicht. Aber irgendwas in der Richtung scheint es zu sein.
Am sure it's not a bug, it's a feature. :-)
Bloß was ist hier der tiefere Zweck?

GwenDragon
Legende
Legende
Beiträge: 8912
Registriert: 20.07.2014, 12:25
Hat sich bedankt: 51 Mal
Danke erhalten: 38 Mal

Re: Weshalb wird in Excel Trim(Str(1)) nicht als solches erkannt?

Beitrag von GwenDragon » 08.11.2017, 13:31

Nachbar hat geschrieben: 08.11.2017, 13:13Aber tatsächlich liefert
If Trim(Str(1)) = "1" Then
das Ergebnis true.
Ich habe nie behauptet dass der Vergleich so nicht klappt.
Ich behauptete, dass es implizite Typkonvertierugen geben könnte.
Basic hat eine grausame Syntax.
Nachbar hat geschrieben: 08.11.2017, 13:13Am sure it's not a bug, it's a feature. :-)
Bloß was ist hier der tiefere Zweck?
Weil Microsoft Excel-Programmierende für Dummköpfe hält oder das irgendein seit Excel-Jahrzehnten mitgeschlepptes Feature ist.
Irgendein VBasic-Krampf wird es schon sein.

Nachbar
Neuling
Neuling
Beiträge: 5
Registriert: 04.04.2017, 16:00
Gender:

Re: Weshalb wird in Excel Trim(Str(1)) nicht als solches erkannt?

Beitrag von Nachbar » 08.11.2017, 17:47

OK, danke, GwenDragon!
Schönen Abend!

GwenDragon
Legende
Legende
Beiträge: 8912
Registriert: 20.07.2014, 12:25
Hat sich bedankt: 51 Mal
Danke erhalten: 38 Mal

Re: Weshalb wird in Excel Trim(Str(1)) nicht als solches erkannt?

Beitrag von GwenDragon » 08.11.2017, 18:01

Ich glaube, dass deine Frage auch sehr Excel-intern- bzw. makro-spezifisch ist, besser in ein Excel-Programmierforum passt. Ist nicht bös’ gemeint, aber nicht alle hier haben so viel Hintergrundwissen.
Oder ich eben zu unwissend bei den MS-Excel-Makros, weil ich viel LibreOffice mache und auch anderes programmiere.
Schönen Abend noch.

Antworten