这个是我原来收集的一个 财务上的数字转中文大写··你改下就好了··
Function daxie(money As String) As String '
Dim x As String, y As String
Const zimu = "sbqwsbqysbqwsbq" '定义位置代码
Const letter = "0123456789sbqwyjzf" '定义数字及汉字缩写
Const upcase = "零壹贰叁肆伍陆柒捌玖拾佰仟万亿圆角整分" '定义大写汉字
Dim temp As String
temp = money
If InStr(temp, "") > 0 Then temp = Left(temp, InStr(temp, "") - 1)
If Len(temp) > 16 Then MsgBox "数目太大,无法换算!请输入一亿亿以下的数字", 64, "错误提示": Exit Function '只能转换一亿亿元以下数目的货币!
x = Format(money, "000") '格式化货币
y = ""
For i = 1 To Len(x) - 3
y = y & Mid(x, i, 1) & Mid(zimu, Len(x) - 2 - i, 1)
Next
If Right(x, 3) = "00" Then
y = y & "z" '元整
Else
y = y & Left(Right(x, 2), 1) & "j" & Right(x, 1) & "f" '元角分
End If
y = Replace(y, "0q", "0") '避免零千(如:40200肆万零千零贰佰)
y = Replace(y, "0b", "0") '避免零百(如:41000肆万壹千零佰)
y = Replace(y, "0s", "0") '避免零十(如:204贰佰零拾零肆)
y = Replace(y, "0j", "0") '避免零角
y = Replace(y, "0f", "整")
Do While y <> Replace(y, "00", "0")
y = Replace(y, "00", "0") '避免双零(如:1004壹仟零零肆)
Loop
y = Replace(y, "0y", "y") '避免零亿(如:210亿 贰佰壹十零亿)
y = Replace(y, "0w", "w") '避免零万(如:210万 贰佰壹十零万)
y = IIf(Len(x) = 5 And Left(y, 1) = "1", Right(y, Len(y) - 1), y) '避免壹十(如:14壹拾肆;10壹拾)
y = IIf(Len(x) = 4, Replace(y, "0", ""), Replace(y, "0", "")) '避免零元(如:2000贰拾零圆;012零圆壹角贰分)
For i = 1 To 19
y = Replace(y, Mid(letter, i, 1), Mid(upcase, i, 1)) '大写汉字
Next
daxie = y
End Function
Private Sub Command1_Click()
Text2Text = daxie(Val(Text1Text)) ' (如return: 贰玖仟叁佰贰拾贰圆叁角贰分
End Sub
Private Sub Command2_Click()
End
End Sub
Private Sub Command3_Click()
Text1Text = ""
Text2Text = ""
End Sub
很多人在时候excel工作表的时候需要填写大写的金额数据,如果利用输入法打大写的话比较麻烦,那我们应该怎么做呢,如果在excel中输入数字能够自动转换文大写数字就好了,那么今天我们就来学习一下在excel中输入数字自动转换为大写数字的方法。
1、选中所有需要使用大写数字的单元格,单击鼠标右键,在d出的快捷菜单中执行“设置单元格格式”命令;
2、在d出的“单元格格式”对话框中选择“数字”选项卡,在“分类”列表框中选择“特殊”选项,然后在右侧的“类别”列表框中选中“中文大写数字”;
3、单击“确定”按钮后,当用户在设置好格式的单元格中输入如“12345”的小写中文数字并按下“Enter”键结束输入后,Excel会自动将其转换为“壹万贰仟叁佰肆拾伍”。
以上就是我们在excel中输入数字自动转换为大写数字的方法, *** 作起来非常简单,而且设置以后还可以提升我们的工作效率。
方法一:
1、在excel单元格中输入“556677”并选中该单元格。
2、点击鼠标右键,选择“设置单元格格式”。
3、在格式设置对话框中选择“特殊”中的“人民币大写”,点击确定。
4、可以看到选中的单元格内的数字变成大写金额了。
方法二:
1、在B1单元格中输入公式:
=SUBSTITUTE(SUBSTITUTE(IF(A1>-05%,,"负")&TEXT(INT(ABS(A1)+05%),
"[dbnum2]G/通用格式元;;")&TEXT(RIGHT(FIXED(A1),2),"[dbnum2]0角0
分;;"&IF(ABS(A1)>1%,"整",)),"零角",IF(ABS(A1)<1,,"零")),"零分","整")。
2、点击回车即可得出函数计算结果,数字已经被转变为大写金额了。
LZ题目都没说清,10是怎么表示?十?一〇?
还有五六– 三 四=根本不合规范,中间的减号还是全角的
基本空格都是有两个。。。。。
足见LZ诚心不足啊
还有除不尽怎么办?
LZ这种课程报告还是问清老师,自己想办法做吧
我其实很忙的
#include<stdioh>
#include<stringh>
int change(char data[])
{
if(!strncmp(data,"〇",2))
{
return 0;
}
if(!strncmp(data,"一",2))
{
return 1;
}
if(!strncmp(data,"二",2))
{
return 2;
}
if(!strncmp(data,"三",2))
{
return 3;
}
if(!strncmp(data,"四",2))
{
return 4;
}
if(!strncmp(data,"五",2))
{
return 5;
}
if(!strncmp(data,"六",2))
{
return 6;
}
if(!strncmp(data,"七",2))
{
return 7;
}
if(!strncmp(data,"八",2))
{
return 8;
}
if(!strncmp(data,"九",2))
{
return 9;
}
}
int calculate(int A,int B,char c)
{
switch(c)
{
case '+':return A+B;
case '-':return A-B;
case '':return AB;
case '/':return A/B;
}
}
void change2(int cal,char ans[])
{
int len[20]={0},i=0;
char data[15][5]={"〇","一","二","三","四","五","六","七","八","九"};
while(cal>0)
{
len[i]=cal%10;
cal/=10;
i++;
}
for(i--;i>=0;i--)
{
strcat(ans,data[len[i]]);
}
return;
}
int main()
{
int n=0,i=0,sum=0,A=0,B=0,j=0;
char ans[50]={0};
char temp[200]={0},cha[10]={0};
while(gets(temp)!=NULL)
{
A=0;
B=0;
ans[0]=0;
A+=change(temp);
for(i=2;temp[i]!=' ';i++)
{
A=10;
A+=change(temp+i);
i++;
}
while(temp[i]==' ')
{
i++;
}
j=i;
i++;
while(temp[i]==' ')
{
i++;
}
B+=change(temp+i);
for(i+=2;temp[i]!=' ';i++)
{
B=10;
B+=change(temp+i);
i++;
}
if(A==0&&B==0)
{
break;
}
A=calculate(A,B,temp[j]);
change2(A,ans);
puts(ans);
}
return 0;
}
先生,这个代码在Linux下用gcc编译通过了。
#include <stdioh>
#include <stdlibh>
#include <wcharh>
#include <localeh>
wchar_t cstrs[10];
wchar_t bit[10];
int main()
{
cstrs[0]=0x96F6;cstrs[1]=0x58F9;cstrs[2]=0x8D30;
cstrs[3]=0x53C4;cstrs[4]=0x8086;cstrs[5]=0x4F0D;
cstrs[6]=0x9678;cstrs[7]=0x67D2;cstrs[8]=0x634C;
cstrs[9]=0x7396;
bit[0]=0x5706;bit[1]=0x62FE;bit[2]=0x4F70;
bit[3]=0x4EDF;bit[4]=0x842C;bit[5]=0x62FE;
bit[6]=0x4F70;bit[7]=0x4EDF;bit[8]=0x5104;
bit[9]=0x62FE;bit[10]=0x4F70;bit[11]=0x4EDF;
bit[12]=0x842C;
setlocale(LC_ALL, "");
double innum;
int k=0; int tmp=1;
scanf("%lf", &innum);
while(tmp<innum){
k+=1; tmp=10;
}
if(tmp>innum){k--; tmp=tmp/10;}
if(k<0){k=0, tmp=1;}
int e, ee, t=0;
e=(int)innum;
while(e>=1){
ee = (int)e/tmp;
if(ee!=0){
if(t){
printf("%lc",cstrs[0]);
t=0;
}
printf("%lc", cstrs[ee]);
printf("%lc", bit[k]);
} else {
t=1;
if(k==8 || k==4)printf("%lc",bit[k]);
}
k--; e=e%tmp; tmp=tmp/10;
}
long et;
et=(long)(innum10); printf("%lc%lc",cstrs[et%10], 0x89D2);
et=(long)(innum100); printf("%lc%lc",cstrs[et%10], 0x5206);
puts("");
return 0;
}
例如:
输入:
25600002322
输出:
贰亿伍仟陆佰万零贰拾叄圆贰角贰分
工具:2010版excel
1、先打开excel,以下图为例,需要将A1单元格中的数字转化成中文大写金额格式并在B1单元格中显示结果;
2、选中B1单元格并输入公式“=SUBSTITUTE(SUBSTITUTE(TEXT(INT(A1),"[DBNum2][$-804]G/通用格式元"&IF(INT(A1)=A1,"整",""))&TEXT(MID(A1,FIND("",A1&"0")+1,1),"[DBNum2][$-804]G/通用格式角")&TEXT(MID(A1,FIND("",A1&"0")+2,1),"[DBNum2][$-804]G/通用格式分"),"零角","零"),"零分","")”;
3、按下回车键后就可以在B1单元格中得出结果了。
以上就是关于vb中如何将整数数字转化为相应的中文大写全部的内容,包括:vb中如何将整数数字转化为相应的中文大写、在excel中输入数字自动转换为大写数字的方法、excel数字金额用什么函数改为大写等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)