將 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 做到這一點?我會把它當作一項任務留給你。

相關內容