Отформатируйте ячейку Excel из VB 6.0 с количеством до двух знаков после запятой

1153
HPrussack

При использовании vb 6.0 для создания ячейки мы не можем принудительно отображать сумму с двумя знаками после запятой, если число не заканчивается на 1-9. Например, 59.12 отображается правильно, но если мы попробуем 59.10, мы получим 59.1 в ячейке. Перепробовал много разных форматов и текстовых выводов, но безуспешно.

В ответ на то, что мы попробовали ниже, есть часть кода, с которой мы пробовали наиболее отмеченные:

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
[Изменить десятичные разряды, отображаемые для чисел] (https://support.office.com/en-sg/article/Change-the-decimal-places-displayed-for-numbers-89195539-878f-4710-8801-196af8cc94ac) DavidPostill 9 лет назад 0

1 ответ на вопрос

0
Hannu

Для электронных таблиц: то, что отображается в ячейке, и то, что на самом деле хранится, может сильно отличаться.

Пример: значения даты и времени равны 1,0 в день, часы, минуты и секунды представлены в десятичных числах, поэтому значение 42205,5 равно «2015-07-20 12:00».

Чтобы «59,1» (или все, что может быть округлено до двух десятичных знаков) отображалось как «59,10», необходимо установить формат отображения «0,00» или аналогичный.

Нажмите и удерживайте, CTRLзатем нажмите 1; В диалоговом окне найдите «Число», нажмите на него и измените «Десятичные знаки» на «2». Теперь нажмите, OKчтобы установить его и выйти из диалога.

В качестве альтернативы можно использовать «Пользовательский» (или «Определенный пользователем» для LibreOffice) в том же диалоговом окне и ввести «0,00» в качестве «Формат кода» - с тем же конечным результатом.

Точно, как это сделать из VBA? Я оставлю это как задание для вас.

Спасибо, я знаю, как сделать это в Excel, проблема, чтобы контролировать его из VB HPrussack 9 лет назад 0

Похожие вопросы