Formatieren einer Excel-Zelle aus VB 6.0 mit einem Betrag auf zwei Dezimalstellen

Formatieren einer Excel-Zelle aus VB 6.0 mit einem Betrag auf zwei Dezimalstellen

Wenn wir vb 6.0 zum Erstellen einer Zelle verwenden, können wir nicht erzwingen, dass der Betrag mit zwei Nachkommastellen angezeigt wird, wenn die Zahl nicht auf 1-9 endet. Beispielsweise wird 59,12 korrekt angezeigt, aber wenn wir 59,10 eingeben, erhalten wir 59,1 in der Zelle. Habe viele verschiedene Formate und Textausgaben ausprobiert, aber ohne Erfolg.

Als Antwort auf das, was wir versucht haben, ist unten ein Teil des Codes aufgeführt, den wir ausprobiert haben und der am häufigsten auskommentiert wurde:

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=================================================

Antwort1

Bei Tabellenkalkulationen gilt: Was in der Zelle angezeigt wird und was tatsächlich gespeichert ist, kann erheblich voneinander abweichen.

Beispiel: Datums- und Uhrzeitwerte betragen 1,0 pro Tag, wobei Stunden, Minuten und Sekunden in den Dezimalstellen vorhanden sind, sodass 42205,5 „20.07.2015 12:00“ entspricht.

Um „59,1“ (oder einen anderen Wert, der auf zwei Dezimalstellen gerundet werden kann) als „59,10“ anzuzeigen, müssen Sie das Anzeigeformat auf „0,00“ oder ähnlich einstellen.

Gedrückt halten und CTRLdann drücken 1; Suchen Sie im Dialog nach „Zahl“, klicken Sie darauf und ändern Sie „Dezimalstellen“ in „2“. Klicken Sie nun, OKum es festzulegen und den Dialog zu verlassen.

Alternativ können Sie im selben Dialog „Benutzerdefiniert“ (oder „Benutzerdefiniert“ für LibreOffice) verwenden und „0,00“ als „Formatcode“ eingeben – mit demselben Endergebnis.

Wie genau geht das mit VBA? Das überlasse ich Ihnen.

verwandte Informationen