Excel精英培训网

 找回密码
 注册
数据透视表40+个常用小技巧,让你一次学会!
查看: 2990|回复: 7

[已解决]排列组合的问题

[复制链接]
发表于 2014-11-15 10:34 | 显示全部楼层 |阅读模式
本帖最后由 sucdb 于 2014-11-15 10:38 编辑

用宏做一个2位(每一位都是A-Z的字母)字母的排列组合,然后将这两位排列组合出来的字母随机抽取366个(输出在另外一个表上)。如何做?或者上传附件,谢谢:)
最佳答案
2014-11-15 11:56
sucdb 发表于 2014-11-15 11:29
不可以重复
  1. Sub demo()
  2.     Dim ar(1 To 676), d As Object, n As Long, m As Long
  3.     Set d = CreateObject("scripting.dictionary")
  4.     For i = 65 To 90
  5.         For j = 65 To 90
  6.             n = n + 1
  7.             ar(n) = Chr(i) & Chr(j)
  8.         Next
  9.     Next
  10.     Do While m < 366
  11.         Randomize
  12.         x = Int((676 * Rnd) + 1)
  13.         If Not d.Exists(ar(x)) Then
  14.             m = m + 1
  15.             d(ar(x)) = ""
  16.         End If
  17.     Loop
  18.     Range("a1").Resize(m, 1) = Application.Transpose(d.keys)
  19. End Sub
复制代码
楼主试试,附件楼下
发表于 2014-11-15 10:41 | 显示全部楼层
回复

使用道具 举报

 楼主| 发表于 2014-11-15 11:05 | 显示全部楼层
qh8600 发表于 2014-11-15 10:41
是排列还是组合啊

先排列,后组合366个
回复

使用道具 举报

发表于 2014-11-15 11:19 | 显示全部楼层
本帖最后由 qh8600 于 2014-11-15 11:28 编辑
sucdb 发表于 2014-11-15 11:05
先排列,后组合366个

先排列一共是676个,然后随机抽出366个是吧,这366个可以重复吗
回复

使用道具 举报

 楼主| 发表于 2014-11-15 11:29 | 显示全部楼层
qh8600 发表于 2014-11-15 11:19
先排列一共是676个,然后随机抽出366个是吧,这366个可以重复吗

不可以重复
回复

使用道具 举报

发表于 2014-11-15 11:56 | 显示全部楼层    本楼为最佳答案   
sucdb 发表于 2014-11-15 11:29
不可以重复
  1. Sub demo()
  2.     Dim ar(1 To 676), d As Object, n As Long, m As Long
  3.     Set d = CreateObject("scripting.dictionary")
  4.     For i = 65 To 90
  5.         For j = 65 To 90
  6.             n = n + 1
  7.             ar(n) = Chr(i) & Chr(j)
  8.         Next
  9.     Next
  10.     Do While m < 366
  11.         Randomize
  12.         x = Int((676 * Rnd) + 1)
  13.         If Not d.Exists(ar(x)) Then
  14.             m = m + 1
  15.             d(ar(x)) = ""
  16.         End If
  17.     Loop
  18.     Range("a1").Resize(m, 1) = Application.Transpose(d.keys)
  19. End Sub
复制代码
楼主试试,附件楼下
回复

使用道具 举报

发表于 2014-11-15 11:56 | 显示全部楼层
sucdb 发表于 2014-11-15 11:29
不可以重复

排列.rar (15.51 KB, 下载次数: 6)
回复

使用道具 举报

 楼主| 发表于 2014-11-15 13:11 | 显示全部楼层
qh8600 发表于 2014-11-15 11:56

非常感谢,就是这个。{:1112:}
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|Excel精英培训 ( 豫ICP备11015029号 )

GMT+8, 2024-5-14 11:26 , Processed in 0.295412 second(s), 10 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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