ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
查看: 622|回复: 2

[分享] Bing的ChatGPT写的生成不重复随机字符串的函数

[复制链接]

TA的精华主题

TA的得分主题

发表于 2023-3-29 20:50 | 显示全部楼层 |阅读模式
本帖最后由 leolee82 于 2023-3-29 20:52 编辑



  1. 下面是整个过程,已省略重复代码
  2. 1. 请用VBA写一个生成不重复随机字符串的函数,给的结果是:
  3. Function GenerateRandomString(length As Integer) As String
  4.     Dim str As String
  5.     Dim i As Integer
  6.     Dim j As Integer
  7.     Dim charSet As String
  8.     charSet = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"
  9.     Randomize
  10.     For i = 1 To length
  11.         Do While True
  12.             j = Int((Len(charSet) * Rnd) + 1)
  13.             If InStr(str, Mid(charSet, j, 1)) = 0 Then
  14.                 str = str & Mid(charSet, j, 1)
  15.                 Exit Do
  16.             End If
  17.         Loop
  18.     Next i
  19.     GenerateRandomString = str
  20. End Function

  21. 2. 请用VBA写一个生成多个不重复随机字符串的函数,给的结果是:
  22. Function GenerateRandomStrings(length As Integer, count As Integer) As String()
  23.     Dim str() As String
  24.     Dim i As Integer
  25.     ReDim str(1 To count)
  26.     For i = 1 To count
  27.         str(i) = GenerateRandomString(length)
  28.         If i > 1 Then
  29.             Do While Not IsUnique(str(i), str, i - 1)
  30.                 str(i) = GenerateRandomString(length)
  31.             Loop
  32.         End If
  33.     Next i
  34.     GenerateRandomStrings = str
  35. End Function
  36. Function IsUnique(str As String, arr() As String, count As Integer) As Boolean
  37.     Dim i As Integer
  38.     For i = 1 To count
  39.         If arr(i) = str Then
  40.             IsUnique = False
  41.             Exit Function
  42.         End If
  43.     Next i
  44.     IsUnique = True
  45. End Function
  46. Function GenerateRandomString(length As Integer) As String
  47. ...
  48. End Function

  49. 3.请将生成的字符串长度改为随机长度,给的结果是:
  50. Function GenerateRandomStrings(count As Integer) As String()
  51.     Dim str() As String
  52.     Dim i As Integer
  53.     ReDim str(1 To count)
  54.     For i = 1 To count
  55.         str(i) = GenerateRandomString(Int((20 - 5 + 1) * Rnd + 5))
  56.         If i > 1 Then
  57.             Do While Not IsUnique(str(i), str, i - 1)
  58.                 str(i) = GenerateRandomString(Int((20 - 5 + 1) * Rnd + 5))
  59.             Loop
  60.         End If
  61.     Next i
  62.     GenerateRandomStrings = str
  63. End Function
  64. Function IsUnique(str As String, arr() As String, count As Integer) As Boolean
  65. ...
  66. End Function
  67. Function GenerateRandomString(length As Integer) As String
  68.     Dim str As String
  69.     Dim i As Integer
  70.     Dim j As Integer
  71.     Dim charSet As String
  72.     charSet = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"
  73.     Randomize
  74.     For i = 1 To length
  75.         Do While True
  76.             j = Int((Len(charSet) * Rnd) + 1)
  77.             If InStr(str, Mid(charSet, j, 1)) = 0 Then
  78.                 str = str & Mid(charSet, j, 1)
  79.                 Exit Do
  80.             End If
  81.         Loop
  82.     Next i
  83.     GenerateRandomString = str
  84. End Function


  85. 4.生成的字符串中还需要包含除数字和字母外的特殊字符,给的结果是:
  86. Function GenerateRandomStrings(count As Integer) As String()
  87. ...
  88. End Function
  89. Function IsUnique(str As String, arr() As String, count As Integer) As Boolean
  90. ...
  91. End Function
  92. Function GenerateRandomString(length As Integer) As String
  93. ...
  94.     charSet = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789!@#$%^&*()"
  95. ...
  96. End Function

  97. 5. 请将返回的结果进行排序,给出的结果是:
复制代码



Screenshot_20230329_204006_com.microsoft.bing.jpg

TA的精华主题

TA的得分主题

发表于 2023-3-29 21:23 来自手机 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
你好,请问如何下载chatgpt

TA的精华主题

TA的得分主题

 楼主| 发表于 2023-3-29 21:39 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
安若浅笑 发表于 2023-3-29 21:23
你好,请问如何下载chatgpt

我在国外,用的手机APP-Bing.
电脑可以new bing国际版,区域不能选中国,以前要申请一下,现在不知道是不是可以直接用。
国内应该也有很多办法使用
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-9-29 14:30 , Processed in 0.037926 second(s), 9 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

快速回复 返回顶部 返回列表