单元格怎么把数字变成人民币大写
在Excel中,我们可以使用特定的方法将数字转换为人民币大写形式。其中一种方法是通过设置单元格的格式来实现,另一种方法是通过函数来完成。小编将介绍这两种方法的具体步骤和操作。
1. 使用设置单元格格式的方法
复制金额列的数据到大写金额列,然后选中单元格,右键点击打开快捷菜单,选择"设置单元格格式"。
在设置单元格格式的界面中,点击"数字",然后选择"特殊",再选择"人民币大写",最后点击"确定"即可将数字转换为人民币大写形式。
2. 使用NUMBERSTRING函数法
Excel中有一个隐藏函数称为NUMBERSTRING,它可以将数字转换为中文大写形式。
首先选中需要转换的单元格内的数字,在选中区域内单击鼠标右键,选择"设置单元格格式"命令。
在格式设置对话框中选择"数字",然后点击"特殊",再选择"人民币大写",最后点击"确定"。
接下来,在选中单元格中输入以下公式:"=NUMBERSTRING(选中单元格的地址)",按回车键即可将数字转换为人民币大写形式。
3. 使用自定义函数法
如果系统自带的函数无法满足需求,我们还可以使用自定义函数来将数字转换为人民币大写形式。
首先,在Excel中打开Visual Basic for Applications(VBA)编辑器。
在编辑器中,点击"插入",再选择"模块",就会弹出一个新的模块窗口。
在模块窗口中输入以下VBA代码:
```
Function MoneyToChinese(ByVal MyNumber)
Dim Units As String
Dim MyDecimal As String
Dim DecimalPlace As Integer
ReDim Place(9) As String
Place(2) = "拾"
Place(3) = "佰"
Place(4) = "仟"
Place(5) = "万"
Place(6) = "拾"
Place(7) = "佰"
Place(8) = "仟"
Place(9) = "亿"
Dim Count As Integer
Dim RMB As String
RMB = ""
MyNumber = Trim(Str(MyNumber))
If MyNumber = "" Then
Exit Function
End If
DecimalPlace = InStr(MyNumber, ".")
If DecimalPlace > 0 Then
MyDecimal = GetTens(Left(Mid(MyNumber, DecimalPlace + 1) & "00", 2))
MyNumber = Trim(Left(MyNumber, DecimalPlace 1))
End If
Count = 1
Do While MyNumber <> ""
Units = Trim(If(Count = 1, "元", IIf(Count = 2, "万", "亿")))
If Len(MyNumber) > 4 Then
Temp = GetHundreds(Right(MyNumber, 4))
MyNumber = Left(MyNumber, Len(MyNumber) 4)
Else
Temp = GetHundreds(MyNumber)
MyNumber = ""
End If
If Temp <> "一" Or Temp <> "" Then
RMB = Temp & Units & RMB
End If
If Len(MyNumber) <> 0 Then
RMB = HANread(Trim(Right(MyNumber, 4))) & RMB
End If
Count = Count + 1
Loop
MoneyToChinese = RMB & MyDecimal
End Function
Function GetHundreds(ByVal MyNumber)
Dim Result As String
If Val(MyNumber) = 0 Then
Exit Function
End If
MyNumber = Right("000" & MyNumber, 3)
If Mid(MyNumber, 1, 1) <> "0" Then
Result = GetDigit(Mid(MyNumber, 1, 1)) & "佰"
End If
If Mid(MyNumber, 2, 1) <> "0" Then
Result = Result & GetDigit(Mid(MyNumber, 2, 1)) & "拾"
Else
If Mid(MyNumber, 1, 1) <> "0" And Mid(MyNumber, 3, 1) <> "0" Then
Result = Result & "零"
End If
End If
If Mid(MyNumber, 3, 1) <> "0" Then
Result = Result & GetDigit(Mid(MyNumber, 3, 1))
End If
GetHundreds = Result
End Function
Function GetTens(TensText)
Dim Result As String
Result = ""
If Val(Left(TensText, 1)) = 1 Then
Select Case Val(TensText)
Case 10 : Result = "拾"
Case 11 : Result = "拾一"
Case 12 : Result = "拾二"
Case 13 : Result = "拾三"
Case 14 : Result = "拾四"
Case 15 : Result = "拾五"
Case 16 : Result = "拾六"
Case 17 : Result = "拾七"
Case 18 : Result = "拾八"
Case 19 : Result = "拾九"
Case Else
End Select
Else
Select Case Val(Left(TensText, 1))
Case 2 : Result = "二十"
Case 3 : Result = "三十"
Case 4 : Result = "四十"
Case 5 : Result = "五十"
Case 6 : Result = "六十"
Case 7 : Result = "七十"
Case 8 : Result = "八十"
Case 9 : Result = "九十"
Case Else
End Select
Result = Result & GetDigit(Right(TensText, 1))
End If
GetTens = Result
End Function
Function GetDigit(Digit)
Select Case Val(Digit)
Case 1 : GetDigit = "壹"
Case 2 : GetDigit = "贰"
Case 3 : GetDigit = "叁"
Case 4 : GetDigit = "肆"
Case 5 : GetDigit = "伍"
Case 6 : GetDigit = "陆"
Case 7 : GetDigit = "柒"
Case 8 : GetDigit = "捌"
Case 9 : GetDigit = "玖"
Case Else
GetDigit = ""
End Select
End Function
Function HANread(ByVal MyChar) As String
Select Case Val(MyChar)
Case 1000
HANread = "千"
Case 100
HANread = "百"
Case 10
HANread = "十"
Case 9
HANread = "玖"
Case 8
HANread = "捌"
Case 7
HANread = "柒"
Case 6
HANread = "陆"
Case 5
HANread = "伍"
Case 4
HANread = "肆"
Case 3
HANread = "叁"
Case 2
HANread = "贰"
Case 1
HANread = "壹"
End Select
End Function
```
最后保存并关闭VBA编辑器,然后在选中单元格中输入以下公式:"=MoneyToChinese(选中单元格的地址)",按回车键即可将数字转换为人民币大写形式。
通过以上三种方法,我们可以轻松地将数字转换为人民币大写形式。无论是使用设置单元格格式、NUMBERSTRING函数,还是自定义函数,都能帮助我们提高效率,简化操作,并确保准确地进行转换。希望小编对读者在Excel中实现数字转换为人民币大写有所帮助。
- 上一篇:基金从业考试过了一门保留多久