作者:乔山办公网日期:
返回目录:office365
可以通过输入法和公式的方式进行大写的转换,具体操作步骤如下:
工具/原材料
excel2016版、电脑。知
1、打开电脑找到并点击excel2016版表格软件;
2、打开表格软件以后道,可以通过在输入数字前加“内v”的方式自动选择大写的金额;
3、选中B列的单元格以后,在编辑栏里容输入下列公式:=IF(A1=0,"",IF(A1<0,"负","")&SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(TEXT(INT(ABS(A1)),"[DBNum2]")&"元"&TEXT(RIGHT(TEXT(A1,".00"),2),"[DBNum2]0角0分"),"零角零分","整"),"零分","整"),"零角","零"),"零元零",""))
4、输入公式以后,此时同时按“ctrl+回车键”即可对B列的单元格进行公式的填充即可。
1050元的大写:壹仟零佰伍拾元整
这种写法不正确
应该写成:壹仟零伍拾元整
把中间的“佰”去掉就行了
7a64e78988e69d83336 a、单击“工具”--“宏”--“Visual Basic 编辑器”
b、单击“Visual Basic 编辑器”菜单栏“运行”--“运行宏”
c、输入宏名,如 "zh" ,单击“创建”
d、键入以下代码:
'a1为数字小写单元格,a2为中文大写单元格
Const strN = "零壹贰叁肆伍陆柒捌玖"
Const strG = "拾佰仟万亿"
Const intN = "0123456789"
Dim Zero_Count As Long '读零计数
Private Function GetN(ByVal N As Long) As String
GetN = Mid(strN, N + 1, 1)
End Function
Private Function GetG(ByVal G As Long) As String
Select Case G
Case 1
GetG = ""
Case 2, 6
GetG = Mid(strG, 1, 1)
Case 3, 7
GetG = Mid(strG, 2, 1)
Case 4, 8
GetG = Mid(strG, 3, 1)
Case 5
GetG = Mid(strG, 4, 1)
Case 9
GetG = Mid(strG, 5, 1)
End Select
End Function
Private Function ReadLongNumber(ByVal LongX As String) As String
Dim numberx As String
Dim l As Long '长度
Dim m As Long '多余位数
Dim c As Long '循环次数
Dim i As Long, j As Long '标志
Dim CurN As String
numberx = LongX
l = Len(numberx)
Do Until l < 9
m = l Mod 8
If m = 0 Then m = 8
CurN = Left(numberx, m)
If ReadIntNumber(CurN) <> "零" Then
ReadLongNumber = ReadLongNumber & ReadIntNumber(CurN) & "亿"
Else
ReadLongNumber = ReadLongNumber & "亿"
End If
numberx = Right(numberx, Len(numberx) - m)
l = Len(numberx)
Loop
ReadLongNumber = ReadLongNumber & ReadIntNumber(numberx)
If Len(ReadLongNumber) > 2 And Right(ReadLongNumber, 1) = "零" Then '去尾 零
ReadLongNumber = Left(ReadLongNumber, Len(ReadLongNumber) - 1)
End If
If Mid(ReadLongNumber, 1, 2) = "壹拾" Then
'掐头 壹拾
ReadLongNumber = Right(ReadLongNumber, Len(ReadLongNumber) - 1)
Mid(ReadLongNumber, 1, 1) = "拾"
End If
Zero_Count = 0
End Function
Private Function ReadIntNumber(ByVal numberx As String) As String
Dim l As Long '长度
Dim m As Long '多余位数
Dim c As Long '循环次数
Dim i As Long, j As Long '标志
Dim CurN As String
If Val(numberx) = 0 Then ReadIntNumber = GetN(0): Exit Function
l = Len(numberx)
If l > 8 Then Exit Function
m = l Mod 9
CurN = Right(numberx, m)
For i = Len(CurN) To 1 Step -1
If GetN(Int(Mid(CurN, i, 1))) = "零" And Zero_Count = 1 Then
If GetG(Len(CurN) - i + 1) = "万" Then
If (Not (Val(Left(CurN, Len(CurN) - 5)) = 0)) Then
ReadIntNumber = GetG(Len(CurN) - i + 1) & ReadIntNumber
End If
End If
Else
If GetN(Int(Mid(CurN, i, 1))) = "零" Then
ReadIntNumber = GetN(Int(Mid(CurN, i, 1))) & ReadIntNumber
If GetG(Len(CurN) - i + 1) = "万" Then
If (Not (Val(Left(CurN, Len(CurN) - 5)) = 0)) Then ReadIntNumber = GetG(Len(CurN) - i + 1) & ReadIntNumber
End If
Zero_Count = 1
Else
ReadIntNumber = GetG(Len(CurN) - i + 1) & ReadIntNumber
ReadIntNumber = GetN(Int(Mid(CurN, i, 1))) & ReadIntNumber
Zero_Count = 0
End If
End If
Next i
'Loop
If Len(ReadIntNumber) > 2 And Right(ReadIntNumber, 1) = "零" Then
'去尾 零
ReadIntNumber = Left(ReadIntNumber, Len(ReadIntNumber) - 1)
End If
If Mid(ReadIntNumber, 1, 2) = "壹拾" Then
'掐头 壹拾
ReadIntNumber = Right(ReadIntNumber, Len(ReadIntNumber) - 1)
Mid(ReadIntNumber, 1, 1) = "拾"
End If
End Function
Public Function ReadNumber(ByVal numberx As String) As String
Dim LongX As String
Dim PointX As String
Dim LongLong As Long
Dim bFS As Boolean '负数
If Not IsNumeric(numberx) Then
ReadNumber = ""
Exit Function
End If
If CDbl(numberx) < 0 Then
numberx = -numberx
bFS = True
End If
numberx = CStr(Format(numberx, "General Number"))
LongLong = InStr(1, numberx, ".")
If LongLong <> 0 Then
ReadNumber = ReadLongNumber(Left(numberx, LongLong - 1))
ReadNumber = ReadNumber & "点" & ReadSmallNumber(Right(numberx, Len(numberx) - LongLong))
Else
ReadNumber = ReadLongNumber(numberx)
End If
If bFS = True Then
ReadNumber = "负" & ReadNumber
End If
End Function
Private Function ReadSmallNumber(SmallNumber As String) As String
Dim i As Long
For i = 1 To Len(SmallNumber)
ReadSmallNumber = ReadSmallNumber & GetN(Mid(SmallNumber, i, 1))
Next i
End Function
Private Function ReadSmallNumberToRMB(SmallNumber As String) As String
ReadSmallNumberToRMB = GetN(Mid(SmallNumber, 1, 1)) & "角" & GetN(Mid(SmallNumber, 2, 1)) & "分"
End Function
Public Function ReadNumberToRMB(ByVal numberx As String) As String
Dim LongX As String
Dim PointX As String
Dim LongLong As Long
Dim bFS As Boolean '负数
If Not IsNumeric(numberx) Then
ReadNumberToRMB = ""
Exit Function
End If
If CDbl(numberx) < 0 Then
numberx = -numberx
bFS = True
End If
numberx = CStr(Format(numberx, "#.00"))
LongLong = InStr(1, numberx, ".")
If Right(numberx, Len(numberx) - LongLong) <> "" Then
ReadNumberToRMB = ReadLongNumber(Left(numberx, LongLong - 1))
ReadNumberToRMB = ReadNumberToRMB & "元" & ReadSmallNumberToRMB(Right(numberx, Len(numberx) - LongLong))
Else
ReadNumberToRMB = ReadLongNumber(numberx)
End If
If bFS = True Then
ReadNumberToRMB = "负" & ReadNumberToRMB
End If
End Function
Sub zh()
Range("a2") = ReadNumberToRMB(Range("a1"))
End Sub