我有一个文档模板,可以通过外部Web服务自动填充。传入的数据以货币形式存在(例如3.10)但是当它传递到Word文档模板时,变量被截断以删除任何尾随的0。我需要数字总是以2位小数出现,即使它们都是0。
这是2003版的Word,我没有使用其他版本进行测试,因为我们需要使用该版本的Word生成所有文档模板。
答案 0 :(得分:1)
您应该能够在宏中使用格式化功能来执行此操作:
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