Formatieren Sie eine Excel-Zelle aus VB 6.0 mit einem Betrag von zwei Dezimalstellen

1189
HPrussack

Wenn Sie mit vb 6.0 eine Zelle erstellen, können Sie nicht zwingen, den Betrag mit zwei Stellen nach dem Dezimalzeichen anzuzeigen, wenn die Zahl nicht in 1-9 endet. Zum Beispiel wird 59.12 korrekt angezeigt, aber wenn wir 59.10 versuchen, erhalten wir 59.1 in der Zelle. Habe viele verschiedene Formate und Textausgaben ausprobiert, jedoch ohne Erfolg.

Als Antwort auf das, was wir unten ausprobiert haben, handelt es sich um einen Teil des Codes, den wir ausprobiert haben:

StartForm:   ActiveWorkbook.Styles.Add(Name:="NelcoAmt").NumberFormat = "#.00"  'ActiveWorkbook.Styles("Number").NumberFormat = "######.00" 'ActiveWorkbook.Styles("Number").Application.FixedDecimalPlaces = 2 'ActiveWorkbook.Styles("Currency").Application.Caption = ""  'ActiveWorkbook.Styles("Currency").IncludePatterns = False  'ActiveWorkbook.Styles("Currency").Application. = ""  'ActiveWorkbook.Styles("Currency").Application.  'xlSheet.Cells(1, 34).NumberFormat = "@"  'xlSheet.Cells(2, 34).NumberFormat = "#.00"  'xlSheet.Cells(2, 34).Format = "#.00"  ActiveWorkbook.Styles("NelcoAmt").Application.FixedDecimalPlaces = 2 xlSheet.Cells(2, 34).Style = "NelcoAmt": '.NumberFormat = "#.00": 'Number  'For i% = 1 To ActiveWorkbook.Styles.Count   'Text$ = ActiveWorkbook.Styles(i%).Name  'xlSheet.Cells(i%, 1).Style = Text$ 'xlSheet.Cells(i%, 1).Value = 59.4  'xlSheet.Cells(i%, 2).Value = Text$  'Next i%    Rem-----9/15/14---set header for variables xlSheet.Cells(1, 1).Value = "UniqueFormKey" xlSheet.Cells(1, 2).Value = "FormName" xlSheet.Cells(1, 3).Value = "OR_EFIN" xlSheet.Cells(1, 4).Value = "OR_Type"           Rem======================================start of test section Dim NumAns As Double  '7/16/15 'NumAns = Format$(Format$(Val(Frm941Inp.Scr941(19)), "########.00"), "@@@@@@@@@@@") txtOut = Format$(Format$(Val(Frm941Inp.Scr941(19)), "########.00"), "@@@@@@@@@@@")  'NumAns = FormatNumber((Val(Frm941Inp.Scr941(19))), 2)  NumAns = Val(Frm941Inp.Scr941(19))   If Val(Frm941Inp.Scr941(18)) = 0 Then txtOut = "0.00" txtOut = Frm941Inp.Scr941(19) 'xlSheet.Cells(2, 34).NumberFormat = "@": ' = txtOut: '"########.00"] 'xlSheet.Cells(2, 34) = (FormatNumber(Val(Frm941Inp.Scr941(19)), 2), "text"): 'txtOut ', "########.00"): '5d 2 tax on add medi wage 'xlSheet.Cells(2, 34) = "'" & FormatNumber(Val(Frm941Inp.Scr941(19)), 2): 'txtOut ', "########.00"): '5d 2 tax on add medi wage 'txtOut = "'" & txtOut  xlSheet.Cells(2, 34).Style.NumberFormat = "#.00": 'Number xlSheet.Cells(2, 34) = Format(NumAns, "#.00"): 'txtOut: 'Val(Frm941Inp.Scr941(19)): 'txtOut ', "########.00"): '5d 2 tax on add medi wage  'xlSheet.Cells(2, 34).Style.NumberFormat = "#.00": 'Number  'xlSheet.Cells(2, 34).NumberFormat = "#.00"  'xlSheet.Cells(2, 34).Value = Val(Frm941Inp.Scr941(19))  'xlSheet.Cells(2, 34).value = FormatNumber(Val(Frm941Inp.Scr941(19)), 2): '"#######.00") 'xlSheet.Cells(2, 34).Value = Format$(Format$(Val(Frm941Inp.Scr941(19)), "########.00"), "@@@@@@@@@@@")  'xlSheet.Cells(2, 34).Value = Val(Frm941Inp.Scr941(19)): '5d 2 tax on add medi wage Rem===================================end of test section================================================= 
0
[Ändern Sie die für Zahlen angezeigten Dezimalstellen] (https://support.office.com/de/sg/article/Change-the-decimal-places-displayed-for-numbers-89195539-878f-4710-8801-196af8cc94ac) DavidPostill vor 8 Jahren 0

1 Antwort auf die Frage

0
Hannu

Für Tabellenkalkulationen: Was in der Zelle angezeigt wird und was tatsächlich gespeichert ist, kann sehr unterschiedlich sein.

Beispiel: Datums- und Uhrzeitwerte sind 1,0 pro Tag, wobei in den Dezimalstellen Stunden, Minuten und Sekunden vorhanden sind, so dass 42205.5 "2015-07-20 12:00" ist.

Damit "59.1" (oder etwas anderes, das auf zwei Dezimalstellen gerundet werden kann) als "59.10" angezeigt wird, müssen Sie das Anzeigeformat auf "0,00" oder ähnliches einstellen.

Gedrückt halten und CTRLdann drücken 1; Suchen Sie im Dialog nach "Nummer", klicken Sie darauf und ändern Sie "Dezimalstellen" in "2". Klicken Sie nun OKauf, um es einzustellen und den Dialog zu verlassen.

Eine Alternative ist die Verwendung von "Benutzerdefiniert" (oder "Benutzerdefiniert" für LibreOffice) im gleichen Dialog. Geben Sie "0,00" als "Formatcode" ein - mit demselben Endergebnis.

Genau wie es von VBA zu tun? Ich lass das als Aufgabe für dich.

Vielen Dank, ich weiß, wie man das Problem löst, um es von VB aus zu steuern HPrussack vor 8 Jahren 0