1

我有一个通过外部 Web 服务自动填充的文档模板。传入的数据以货币形式存在(例如 3.10),但是当它被传递到 Word 文档模板时,变量会被截断以删除任何尾随的 0。我需要数字始终以 2 位小数出现,即使它们都是 0。

这是 2003 版的 Word,我没有测试过其他版本,因为我们所有的文档模板都需要使用该版本的 Word 生成。

4

1 回答 1

1

您应该能够在宏中使用 Format 函数来执行此操作:

    Format(yourValue, "Currency")

为了让用户输入的文本框只能接受货币格式的值,我使用了这样的宏:

Private Function getValue(text As String) As Currency
    If text = "" Then
        getValue = 0
    Else
        getValue = CCur(Val(RemoveNonNumeric(text)))
    End If
End Function

Private Function RemoveNonNumeric(inputStr As String) As String
    Const NUMERIC_CHARS = "0123456789."

    Dim result As String
    Dim currCharIndex As Long
    Dim currentString As String
    Dim deciCount As Integer
    Dim afterDeciCount As Integer

    deciCount = 0
    afterDeciCount = 0

    For currCharIndex = 1 To Len(inputStr)
        currentString = Mid$(inputStr, currCharIndex, 1)

        If currentString = "." Then deciCount = deciCount + 1

        If InStr(1, NUMERIC_CHARS, currentString) > 0 And deciCount < 2 And afterDeciCount < 3 Then
            result = result + currentString
            If deciCount > 0 Then afterDeciCount = afterDeciCount + 1
        End If
    Next

    result = result

    RemoveNonNumeric = result
End Function
于 2012-11-14T22:37:01.093 回答