VB 6.0에서 소수점 이하 두 자리까지의 Excel 셀 서식을 지정합니다.

VB 6.0에서 소수점 이하 두 자리까지의 Excel 셀 서식을 지정합니다.

vb 6.0을 사용하여 셀을 만들 때 숫자가 1-9로 끝나지 않으면 소수점 이하 2자리로 금액을 표시하도록 강제할 수 없습니다. 예를 들어 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=================================================

답변1

스프레드시트의 경우: 셀에 표시되는 내용과 실제로 저장되는 내용은 상당히 다를 수 있습니다.

예: 날짜 및 시간 값은 하루 1.0이며, 소수점 이하 자릿수에는 시, 분, 초가 표시되므로 42205.5는 "2015-07-20 12:00"과 같습니다.

"59.1"(또는 소수점 두 자리에서 반올림될 수 있는 다른 항목)을 "59.10"으로 표시하려면 표시 형식을 "0.00" 또는 이와 유사한 것으로 설정해야 합니다.

길게 누른 CTRL다음 누르십시오 1. 대화 상자에서 "숫자"를 찾아 클릭하고 "소수점 자릿수"를 "2"로 변경합니다. 이제 클릭 OK하여 설정하고 대화 상자를 종료하세요.

대안은 동일한 대화 상자에서 "사용자 정의"(또는 LibreOffice의 경우 "사용자 정의")를 사용하고 "형식 코드"로 "0.00"을 입력하는 것입니다. 최종 결과는 동일합니다.

VBA에서 정확히 어떻게 수행합니까? 그건 당신의 과제로 남겨 두겠습니다.

관련 정보