2016-03-23 30 views
0

Ich habe Excel VBA seit einer Weile verwendet und ich bin auf ein Problem gestoßen, das ich noch nie zuvor erlebt habe. Ich verwende einen anderen Computer, der als polnisch eingerichtet ist, so dass das Dezimaltrennzeichen auf Komma gesetzt ist. Aber selbst als ich meinen Computer in der Vergangenheit ähnlich aufgebaut hatte, hatte ich kein Problem.Variable mit dezimalem Komma anstelle von Dezimalpunkt

Dieses aktuelle Projekt erstellt eine Zeichnung in Visio.

So

ich eine Variable vom Typ double, die als pgeWidth = 550/1.4

berechnet Was würde ich ist erwarten, dass VBA würde berechnen pageWidth = 392.857... Doch was VBA macht, ist pgeWidth = 392,857... Wenn ich eine Pause setzen in und prüfen Sie den Wert von pgeWidth zeigt es den Wert mit einem Kommatrennzeichen. pgeWidth wird dann auf die Seitenbreiteneigenschaft in Visio gesetzt, die denkt, dass sie 392857 .... mm breit sein sollte, was offensichtlich einen Fehler ergibt.

Warum verwendet VBA ein Komma-Dezimaltrennzeichen anstelle eines Punktes?

+0

Excel verwenden, um den lokalen Systemeinstellungen Zahlen zu formatieren, Währungen und Zeiten. –

+0

VBA respektiert das regionale Dezimalzeichen in seiner Ausgabe. Offenbar respektiert Visio das Dezimalsymbol nicht als ein Komma, obwohl es in Ihren Windows-Ländereinstellungen so definiert ist. Welche Version von Visio? –

+0

Ein anderer Gedanke von jemandem, der mit Visio nicht vertraut ist. Vielleicht könntest du den Wert "Round" oder "Truncate" nennen. Sie müssen die Dimension möglicherweise nicht in Bruchteilen eines Millimeters angeben. z.B. 'pgeWidth = Int (pgeWidth)'. –

Antwort

0

Wenn Sie den Wert weiter mit Punkt übergeben möchten, sollten Sie Variable in einen String konvertiert und dann Komma mit Punkt ersetzt:

pgeWidth = replace(CStr(pgeWidth), ",",".") 
Verwandte Themen