Excel中保留有效數字的問題

在工做表界面中按 <alt>+<F11>,
進入代碼頁面,而後再 WORKBOOK中插入模塊,把如下代碼COPY入模塊中。
就能夠在工做表中使用 =YXSZ(數值,保留位數)。

如:
A1=456.789
B1=YXSZ(A1,4)
=456.8

代碼以下:
Public Function YXSZ(X, n As Integer)  'n爲有效數字位數

    Dim jk, j
    Dim Y As Single
    Dim temp As String
    Dim zfh As Integer
    zfh = 1
    If X = "" Or (Not Application.WorksheetFunction.IsNumber(X)) Then mYX = "?Value!": Exit Function
    X = Val(X)

    If n < 1 Then mYX = X: Exit Function
    If X <= 0 Then
        zfh = -1
        X = X * zfh
    End If
    If X < 1 Then
        j = 1

        Do
            temp = CStr(X)
            j = j + 1
        Loop Until Val(Mid$(temp, j, 1)) > 0
        j = j + n
        X = X * 10 ^ j
        jk = Len(CStr(Int(X))) - n
        Y = X / 10 ^ jk + 0.5
        YXSZ = Int(Y) * 10 ^ jk / 10 ^ j* zfh
        X = X / 10 ^ j 
        
    Else
        jk = Len(CStr(Int(X))) - n
        Y = X / 10 ^ jk + 0.5
        YXSZ = Int(Y) * 10 ^ jk * zfh
    End If
    
End Function
相關文章
相關標籤/搜索