如果是后面小写转换为前面的大写的话很容易。但反过来就不能转了。
你可以考虑前面大写的部分输入小写的数字,然后设置单元格格式将其自动显示为大写。这样的话,后面那个是能做的。
设原大写的数据在b列,后面小写的数据从d列开始。
设b2有数据。
在d2输入:
=IF($B2>0,IF(LEN($B2*100)=8-COLUMN(A1),"¥",IF(LEN($B2*100)>8-COLUMN(A1),LEFT(RIGHT($B2*100,9-COLUMN(A1)),1),"")),"")
适合最大万位数的显示。
看到一个大神写的VBA代码,给你了
Function DaXie(ByVal Num) ' 人民币中文大写函数
Application.Volatile True
Place = "分角元拾佰仟万拾佰仟亿拾佰仟万"
Dn = "壹贰叁肆伍陆柒捌玖"
D1 = "整零元零零零万零零零亿零零零万"
If Num < 0 Then FuHao = "(负)"
Num = Format(Abs(Num), "###0.00") * 100
If Num > 999999999999999# Then: DaXie = "数字超出转换范围!!": Exit Function
If Num = 0 Then: DaXie = "零元零分": Exit Function
NumA = Trim(Str(Num))
NumLen = Len(NumA)
For J = NumLen To 1 Step -1 ' 数字转换过程
Temp = Val(Mid(NumA, NumLen - J + 1, 1))
If Temp <> 0 Then ' 非零数字转换
NumC = NumC & Mid(Dn, Temp, 1) & Mid(Place, J, 1)
Else ' 数字零的转换
If Right(NumC, 1) <> "零" Then
NumC = NumC & Mid(D1, J, 1)
Else
Select Case J ' 特殊数位转换
Case 1
NumC = Left(NumC, Len(NumC) - 1) & Mid(D1, J, 1)
Case 3, 11
NumC = Left(NumC, Len(NumC) - 1) & Mid(D1, J, 1) & "零"
Case 7
If Mid(NumC, Len(NumC) - 1, 1) <> "亿" Then
NumC = Left(NumC, Len(NumC) - 1) & Mid(D1, J, 1) & "零"
End If
Case Else
End Select
End If
End If
Next
DaXie = FuHao & Trim(NumC)
End Function
假如人民币大写在B4单元格,在E1:K1单元格分别写入:万、仟、佰、拾、元、角、分
在D4单元格输入公式:=IF(MID($B$4,2,1)=E1,"¥",VLOOKUP(MID($B$4,FIND(D1,$B$4)-1,1),{"零",0;"壹",1;"贰",2;"叁",3;"肆",4;"伍",5;"陆",6;"柒",7;"捌",8;"玖",9},2,0)),向后充填
以上公式只适合小于99999.99元的情况
要填写小写数字的列数与公式有密切关系。数了一下,是8列,公式:
=IF(FIND("元",$A1)/2<7-COLUMN(A1),"",VLOOKUP(LEFT(RIGHT($A1,19-COLUMN(A1)*2)),IF({1,0},TEXT(ROW($1:$10)-1,"[dbnum2]"),ROW($1:$10)-1),2,))
组合键结束,右拉。
将输入小写的列全选,然后点击“格式”“单元格”“数值”“货币”网格线就没必要存在了。
如果支票上己经设了几个单元格,可以将其合并