注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

零售创新,创新那些事儿,SPSS,VBA

零售创新

 
 
 

日志

 
 
关于我

新浪微博,零售创新 研究经理,数据分析师 希望和市场研究和零售业的同事共同进步! 本博客发表的都是免费或试用的资料,如果有版权问题请发邮件wangli12a@163.com联系删除。 spss excel vba blog

网易考拉推荐

excel 1-40的不同数字的组合  

2012-04-10 16:34:39|  分类: VB和VBA知识 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

excel 1-40的不同数字的组合

有哪位excel高手能帮我解决排列组合的问题
悬赏分:0 - 离问题结束还有 14 天 22 小时
如何在1-40的数中将其中的一位数与其他的六位数进行组合,每位数都要与不同的六位数组合一次,按低到高的顺序比如:01020304050607

01020304050608 01020304050609........01020304050640 01020304050708 01020304050609 01020304050640.......(最后的一组数应为)

34353637383940 要横向排列 有自动生成的办法吗?请高手指点

提问者: 仿佛·好像似 - 一级回答    共 2 条
-------------------
有问题:
“每位数都要与不同的六位数组合一次”,那你的第一个组合应该是“01020304050601”,是这样不?
按照你的举例看,题目又好像是不同的7个数字的组合,是那种情况?

先搞清楚题目,再VBA
--------------------------
不同的7个数字的组合:
右键一个空的工作表名称,点击“查看代码”,将下面的代码复制到其中,然后按F5键运行:
Public Sub abc()
Dim row As Integer, b(6) As Integer, c(6) As String
row = 0
For i1 = 1 To 40
b(0) = i1
For i2 = i1 + 1 To 40
    b(1) = i2
    For i3 = i2 + 1 To 40
      b(2) = i3
      For i4 = i3 + 1 To 40
        b(3) = i4
        For i5 = i4 + 1 To 40
          b(4) = i5
          For i6 = i5 + 1 To 40
            b(5) = i6
            For i7 = i6 + 1 To 40
              b(6) = i7
              For j = 0 To 6
                If b(j) < 10 Then c(j) = "0" & b(j)
                If b(j) > 9 Then c(j) = b(j)
              Next j
              row = row + 1
              Cells(row, 1) = c(0) & c(1) & c(2) & c(3) & c(4) & c(5) & c(6)
Next i7, i6, i5, i4, i3, i2, i1
End Sub
运行结果就放在该空表中。

注意:我运行的情况是“溢出”,因为组合太多了,只罗列出了一部分,到第32767行才列到了“01020309173134”,第一位数字还没有变,

呵呵
具体的组合数量为40*39*38*37*36*35*34=93963542400 个,需要1433791个工作表,往哪儿放啊?
 

  评论这张
 
阅读(772)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017