Обработка десятичных знаков в текстовом поле в форме Excel - PullRequest
2 голосов
/ 06 января 2012

Я хочу отобразить число в текстовом поле в форме Excel.отчет, однако я хочу показать любые десятичные точки, только если они присутствуют, и я хочу показать только 2 десятичных знака.

например, если число 12, то я хочу показать 12

Если число 12,1, то я хочу показать 12.10

Если число 12.126, то я хочу показать 12.13

В данный момент у меня есть код ниже и он не показывает мне десятичные точки:

Me.Amount.Value = Format(Me.Amount, "#,###")

1 Ответ

2 голосов
/ 06 января 2012

Вы можете написать функцию для условного возврата одной из двух строк формата:

Function GetFormatString(varValue As Variant) As String
    Dim dblValue As Double
    If IsNumeric(varValue) Then
        dblValue = CDbl(varValue)
        If dblValue = Int(dblValue) Then
            GetFormatString = "#,###"
        Else
            GetFormatString = "#,###.00"
        End If
    End If
End Function

Private Sub Amount_AfterUpdate()
    Dim strFormat As String
    strFormat = GetFormatString(Me.Amount.Value)
    Me.Amount.Value = Format(Me.Amount.Value, strFormat)
End Sub 
...