จัดรูปแบบเซลล์ Excel จาก VB 6.0 ด้วยจำนวนทศนิยมสองตำแหน่ง


0

เมื่อใช้ vb 6.0 เพื่อสร้างเซลล์เราไม่สามารถบังคับจำนวนที่จะแสดงด้วย 2 ตำแหน่งหลังจากจุดทศนิยมหากตัวเลขไม่ได้ลงท้ายด้วย 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

สำหรับสเปรดชีต: สิ่งที่ปรากฏในเซลล์และสิ่งที่จัดเก็บจริงอาจแตกต่างกันมาก

ตัวอย่าง: ค่าวันที่และเวลาคือ 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
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.