用VBAjava 随机大小写字母数字和小写英文混合(范围6至18位)

查看: 627|回复: 10
用VBA编写将数字转换成中文大写字母的代码
阅读权限20
在线时间 小时
有没有人能用尽可能简短的代码将数字转换成中文大写字呢,比如“1250元整”,用代码写成“壹仟贰佰伍拾圆整”,感激不尽!!
阅读权限90
在线时间 小时
& & & & & & & &
MsgBox Application.Text(a, &[DBNum2]&) & &圆整&
阅读权限30
在线时间 小时
你好,请问你是确定到圆整还是角整还是分整,比如10000.23??
阅读权限20
在线时间 小时
MsgBox Application.Text(a, &[DBNum2]&) & &圆整&
哇塞,好厉害,好短啊,为什么我在网上看到一些代码是长篇大论的呢
阅读权限20
在线时间 小时
你好,请问你是确定到圆整还是角整还是分整,比如10000.23??
如果是分整的话是怎样写的呢,谢谢
阅读权限30
在线时间 小时
如果是分整的话是怎样写的呢,谢谢
二楼的利用了text函数,这种写法只能适用整数,如果带小数点的就不好用了,你可以试一下。因为财务方面计数要求金额大写有圆整、角整和分整的要求,就看你是什么要求了
阅读权限20
在线时间 小时
二楼的利用了text函数,这种写法只能适用整数,如果带小数点的就不好用了,你可以试一下。因为财务方面计 ...
我试过了二楼的代码了,实现了,那我想知道角整的该怎么写呢??
阅读权限30
在线时间 小时
也是坛子里一位老师的杰作,可能是我目前看最简单的了,直接调用就行了
Function ldy888(M)
y = Int(Round(100 * Abs(M)) / 100)
j = Round(100 * Abs(M) + 0.00001) - y * 100
f = Round((j / 10 - Int(j / 10)) * 10)
a = IIf(y & 1, &&, Application.Text(y, &[DBNum2]&) & &元&)
b = IIf(j & 9.4, Application.Text(Int(j / 10), &[DBNum2]&) & &角&, IIf(y & 1, &&, IIf(f & 0.4, &零&, &&)))
c = IIf(f & 1, &整&, Application.Text(Round(f, 0), &[DBNum2]&) & &分&)
ldy888 = IIf(Abs(M) & 0.005, &&, IIf(M & 0, &负& & a & b & c, a & b & c))
End Function
阅读权限20
在线时间 小时
& & & & & & & &
也是坛子里一位老师的杰作,可能是我目前看最简单的了,直接调用就行了
Function ldy888(M)
哇塞,这个真的太棒了,谢谢分享
阅读权限90
在线时间 小时
二楼的利用了text函数,这种写法只能适用整数,如果带小数点的就不好用了,你可以试一下。因为财务方面计 ...
Sub 中文大写() 'hlly888
Range(&c2:d65536&).ClearContents
Application.ScreenUpdating = False
Dim i, x, b, arr
x = Sheet1.Cells(Rows.Count, 1).End(xlUp).Row
arr = Sheet1.Range(&a2:g& & x)
ReDim brr(1 To UBound(arr), 1 To 2)
& & For i = 1 To UBound(arr)
& && &&&b = Application.Text(arr(i, 1), &[DBNum2]&)
& && &&&If Len(Split(b, &.&)(1)) = 2 Then
& && && &&&If Left(Split(b, &.&)(1), 1) = &零& Then brr(i, 1) = Split(b, &.&)(0) & &圓零& & Right(Split(b, &.&)(1), 1) & &分&
& && && &&&If Left(Split(b, &.&)(1), 1) && &零& Then brr(i, 1) = Split(b, &.&)(0) & &圓& & Left(Split(b, &.&)(1), 1) & &角& & Right(Split(b, &.&)(1), 1) & &分&
& && &&&End If
& && &&&If Len(Split(b, &.&)(1)) = 1 Then brr(i, 1) = Split(b, &.&)(0) & &圓& & Split(b, &.&)(1) & &角整&
[c2].Resize(UBound(arr), 1) = brr
Application.ScreenUpdating = True
最新热点 /1
当当网书香节,ExcelHome图书每200-100,活动即日起至4月23日,莫失良机!
玩命加载中,请稍候
玩命加载中,请稍候
Powered by
本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任! & & 本站特聘法律顾问:徐怀玉律师 李志群律师查看: 1787|回复: 8
EXCLE如何编写8位随机数字字母且不重复
在EXCEL里怎么写随机生成数字大小写字母,一共8位,而且不重复。下面只能随机生成
下列只能生成随机大小写字母和数字,不能显示重复
QQ图片07.png (20.29 KB, 下载次数: 4)
10:38 上传
B2=IF(COUNTIF(B$1:B2,B2)&1,RANDBETWEEN(99999),RANDBETWEEN(99999))&&,启用迭代
错了,,,,,以为是8位数字
自定义函数吧。Function Get8()
& & x = &abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ&
& & n = Len(x)
& & For i = 1 To 8
& && &&&p = Int(Rnd * n + 1)
& && &&&s = s & Mid(x, p, 1)
& && &&&Mid(x, p, 1) = Mid(x, n, 1)
& && &&&n = n - 1
& & Next
& & Get8 = s
End Function复制代码
11:01 上传
点击文件名下载附件
8.86 KB, 下载次数: 34
grf1973 发表于
自定义函数吧。
谢谢啊,请问哪段语句是实现随机数字不重复的
Function PassWord() As String
& & Dim A(1 To 62), i
& & For i = 0 To 9
& && &&&A(i + 1) = i
& & Next i
& & For i = 65 To 90
& && &&&A(i - 54) = Chr(i)
& & Next i
& & For i = 97 To 122
& && &&&A(i - 60) = Chr(i)
& & Next i
& & PassWord = GetRnd(A, LBound(A), UBound(A), 8)
End Function
'从数组A中,随机出选8个不重复值
Function GetRnd(A, x, y, z) As String
& & Dim i, t, s
& & For i = x To z + x - 1
& && &&&t = Int((y - i + 1) * Rnd) + i
& && &&&s = s & A(t)
& && &&&A(t) = A(i)
& & GetRnd = s
End Function
(9.07 KB, 下载次数: 10)
12:42 上传
点击文件名下载附件
x是一个字符串,随机在长度p处取掉一个,然后把字符串最后一个数放到P处,然后字符串长度-1,然后继续随机取。
4楼代码可操作性强,牛!
谢谢4楼的代码。。
Powered by查看: 885|回复: 16
将中文大、小写数字转换为阿拉伯数字
阅读权限30
在线时间 小时
本帖最后由
15:27 编辑
中文大写金额数字转换为阿拉伯数字,(最好是阿拉伯数字在大写金额数字的前后可选择)。
想要达到的效果、如:【八拾七万九仟零四拾五元整】(人民币¥:元)【伍亿陆仟柒佰捌拾玖万陆仟壹佰零玖元零伍分】(人民币¥:元)【贰仟叁佰肆拾伍亿陆仟柒佰捌拾玖万陆仟壹佰零玖元柒角伍分】(人民币¥:.75元)
中文小写金额数字转换为阿拉伯数字,(最好是阿拉伯数字在小写金额数字的前后可选择)。
想要达到的效果、如:【一亿二仟三佰四拾五万六仟七佰八拾九元○七分】(人民币¥:元)。【三亿一仟一佰二拾二万三仟三佰四拾四元○一角】(人民币¥:元)。【五万二仟七佰八拾九元整】(人民币¥:52789.00元)。
请用VBA解决,求前辈们出手相助!谢谢!
11:30 上传
点击文件名下载附件
3.85 KB, 下载次数: 18
11:30 上传
点击文件名下载附件
4.66 KB, 下载次数: 9
阅读权限95
在线时间 小时
有点难,数字大小写互换。
阅读权限70
在线时间 小时
4楼我与了一个混排数字转阿拉伯数字的函数,可以试用一下。
阅读权限30
在线时间 小时
有点难,数字大小写互换。
这个可能是比较难,以前在Word版块也求助好久,一直都没有得到彻底的解决。
阅读权限30
在线时间 小时
http://club.excelhome.net/thread--1.html
4楼我与了一个混排数字转阿拉伯数字的函数,可以试用 ...
惭愧!本人水平还没到那个层次,对excel更是一窍不通。
感谢回复!
阅读权限30
在线时间 小时
求前辈们赐教!谢谢!
阅读权限90
在线时间 小时
以元为单位,“贰万肆仟柒佰玖拾万零伍仟陆佰捌拾叁亿陆仟贰佰万零叁佰零壹元贰角”用阿拉伯数字表示,该怎样写?
阅读权限30
在线时间 小时
以元为单位,“贰万肆仟柒佰玖拾万零伍仟陆佰捌拾叁亿陆仟贰佰万零叁佰零壹元贰角”用阿拉伯数字表示,该怎 ...
00301.20元。
阅读权限95
在线时间 小时
分列亿万千百拾,前面的分别乘10的8、4、3、2次方。分列元,分列角、分:各乘0.1、0.01。将各部分相加。
阅读权限30
在线时间 小时
分列亿万千百拾,前面的分别乘10的8、4、3、2次方。分列元,分列角、分:各乘0.1、0.01。将各部分相加。
啥意思?看不懂,请详教?谢谢!
最新热点 /1
当当网书香节,ExcelHome图书每200-100,活动即日起至4月23日,莫失良机!
玩命加载中,请稍候
玩命加载中,请稍候
Powered by
本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任! & & 本站特聘法律顾问:徐怀玉律师 李志群律师小写金额转大写的三种方法
小写金额转大写的三种方法
除非注明,文章均为原创,转载请保留链接: ,VBA交流群。
今天来讲下将小写金额转成大写金额的三种方法。
第一种方法在只是转单个金额时非常实用,那就是用搜狗输入法。
在中文状态下先输入一个英文字母"V",然后输入你的小写金额,这时搜狗就会将你输入的小写转化为大写。比如输入"v100",就会显示一百和壹佰,输入"v100.00"就会显示“一百元整”和“壹佰元整”。感兴趣的可以自己去试下。
第二种方法是利用Excel函数。
函数具体形式为
=TEXT(INT(A1),"[dbnum2]G/通用格式元;;")&SUBSTITUTE(SUBSTITUTE(TEXT(RIGHT(RMB(A1),2),"[dbnum2]0角0分;;整"),"零角",IF(A1^2&1,,"零")),"零分","整") 。这也是我在网上搜集到的一个公式,非常好用,将里面A1变成相应的单元格即可。既然是Excel函数,那除了可以通过输入拖动的方法来使用外,自然也可以嵌入到VBA程序中调用。我本人在应用的时候习惯将这个公式放到一个辅助的工作表中,例如放在sheet2的B1单元格,那我只要将要转换的数值放入sheet2的A1单元格,那B1就是我要的结果,将B1的结果调用出来即可。看下面的例子,我sheet1A列是小写金额,要在B列显示成大写,公式放在sheet2的B1单元格
Sub Excel函数转大写()
For i = 1 To sheet1.Range("A" & Rows.Count).End(xlUp).Row
Sheet2.Range("A1") = Sheet1.Range("A" & i)
'数值放到sheet2的A1,则sheet2的B1就是我们要的大写
Sheet1.Range("B" & i) = Sheet2.Range("B1")
'把sheet2的B1放到想放的位置
第三种方法是利用VBA自定义函数,然后在程序中调用即可。下面的函数也是我在ExcelHome中搜集的。
Function DX(M_MONEY As Double)
'将人民币小写金额转换为中文大写金额
Dim M_code As String
On Error GoTo 900
M_MONEY = Round(M_MONEY, 2)
If M_MONEY = 0 Then
M_code = ""
If M_MONEY & 0 Then
M_code = "负"
M_MONEY = Abs(M_MONEY)
If M_MONEY & 0.1 Then
M_code = M_code & Application.WorksheetFunction.Text(Int(M_MONEY * 100), "[dbnum2]") & "分"
If M_MONEY &= 1 Then
M_code = M_code & Application.WorksheetFunction.Text(Int(M_MONEY), "[dbnum2]") & "元"
M_MONEY = Round((M_MONEY - Int(M_MONEY)) * 100, 2)
If M_MONEY = 0 Then
M_code = M_code & "整"
If M_MONEY &= 10 Then
M_code = M_code & Application.WorksheetFunction.Text(Int(M_MONEY / 10), "[dbnum2]") & "角"
M_MONEY = M_MONEY Mod 10
M_code = M_code & "零"
If M_MONEY = 0 Then
M_code = M_code & Application.WorksheetFunction.Text(Int(M_MONEY), "[dbnum2]") & "分"
DX = M_code
End Function
下面看怎么调用函数
Sub 自定义函数转大写()
For i = 1 To Range("A" & Rows.Count).End(xlUp).Row
Range("B" & i) = DX(Range("A" & i))
没啥好解释的了。
本节示例文件下载地址:。
咨询,程序开发,友链交换请联系博主
VBA QQ群:
注意!复制代码请用Ctrl+C!

我要回帖

更多关于 java 随机大小写字母 的文章

 

随机推荐