前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >ExcelVBA生成不重复n位的n个数字

ExcelVBA生成不重复n位的n个数字

作者头像
哆哆Excel
发布2022-10-25 13:38:56
4280
发布2022-10-25 13:38:56
举报
文章被收录于专栏:哆哆Excel

Sub test()

Call rnd_n_n(18, 100, "a1")

End Sub

'************************************

'为了在做表的时候模拟出一些身份证,本程序可以生成100个不重复的18位数字

'要求:1.18位数字 2.同时生成的总量中没有重复

'使用方法:call rnd_n_n(位数,个数,存放位置)如:Call rnd_n_n(10, 100, "a1")

'*************************************************

Sub rnd_n_n(nw, ng, rng)

' Const a = "ABCDEFGHJKLMNOPQRSTWXYZZ0123456789"

Const a = "0123456789"

Dim i&, z As String

Set d = CreateObject("scripting.dictionary")

10:

For i = 1 To nw '18是要生成的位数。如果你要15位就修改为15

z = z & Mid(a, WorksheetFunction.RandBetween(1, 10), 1)

Next

If Not d.Exists(z) Then

d(z) = ""

If d.Count < ng Then '100是要生成的总数,如果是要500个就修改为500

z = "": GoTo 10

Else

GoTo 100

End If

Else

z = "": GoTo 10

End If

100:

Range(rng).Resize(d.Count, 1).NumberFormat = "@"

Range(rng).Resize(d.Count, 1) = WorksheetFunction.Transpose(d.keys)

End Sub

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-06-25,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 哆哆Excel 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档