ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[求助] 关于复式排列组合代码问题

[复制链接]

TA的精华主题

TA的得分主题

发表于 2013-1-30 14:36 | 显示全部楼层 |阅读模式
本帖最后由 HCL13670995161 于 2013-2-11 20:54 编辑

  在组合数据时,如何根据某些单元格条件进行组合.   由于水平有限. 各位老师能否根据图片的条件编写代码例句..
   1位,2位,相加的个位等于L2:P2单元格里面任何一个数则不组合.如下图
1.png

1位,2位,相加的个位等于L2:P2单元格里面任何一个数则不组合.如下图

2.png

1位,3位,相加的个位等于L3:P3单元格里面任何一个数则不组合.如下图

3.png

6位,7位,相加的个位等于L4:P4单元格里面任何一个数则不组合.如下图
4.png

  1,2,3位相加的和个位等于L5:P5单元格里面任何一个数则不组合. 如下图
5.png

1,2,3,4,5,6,7,位相加的和个位等于L9:P9单元格里面任何一个数则不组合.如下图
6.png

    根据A12:G12,A13:G13,A14:G14,A15:G15单元格内容奇偶进行不组合.
7.png

:如何在这里面代码修改 Sub 生成排列()
Dim a$, b$, c$, d$, e$, f$, g$
Dim Ca%, Cb%, Cc%, Cd%, Ce%, Cf%, Cg% 'C=Column
Dim Ra%, Rb%, Rc%, Rd%, Re%, Rf%, Rg% 'R=Row
Dim Pa$, Pb$, Pc$, Pd$, Pe$, Pf$, Pg$ 'P=Parity
Dim Na%, Nb%, Nc%, Nd%, Ne%, Nf%, Ng% 'N=Number
Dim R%, Col%
'On Error Resume Next
Worksheets(2).[A1].CurrentRegion.ClearContents
Ca = WorksheetFunction.CountA(Range("A2:A12"))
Cb = WorksheetFunction.CountA(Range("B2:B12"))
Cc = WorksheetFunction.CountA(Range("C2:C12"))
Cd = WorksheetFunction.CountA(Range("D2:D12"))
Ce = WorksheetFunction.CountA(Range("E2:E12"))
Cf = WorksheetFunction.CountA(Range("F2:F12"))
Cg = WorksheetFunction.CountA(Range("G2:G12"))
If Ca = 0 Then Ca = 1
If Cb = 0 Then Cb = 1
If Cc = 0 Then Cc = 1
If Cd = 0 Then Cd = 1
If Ce = 0 Then Ce = 1
If Cf = 0 Then Cf = 1
If Cg = 0 Then Cg = 1
R = 1
Col = 1
For Ra = 2 To Ca + 1
If Cells(Ra, 1) = "" Then
a = ""
Pa = ""
Na = 0
Else
a = Cells(Ra, 1)
Pa = a Mod 2
Na = Val(a)
End If
For Rb = 2 To Cb + 1
If Cells(Rb, 2) = "" Then
b = ""
Pb = ""
Nb = 0
Else
b = Cells(Rb, 2)
Pb = b Mod 2
Nb = Val(b)
End If
For Rc = 2 To Cc + 1
If Cells(Rc, 3) = "" Then
c = ""
Pc = ""
Nc = 0
c = Cells(Rc, 3)
Pc = c Mod 2
Nc = Val(c)
End If
For Rd = 2 To Cd + 1
If Cells(Rd, 4) = "" Then
d = ""
Pd = ""
Nd = 0
Else
d = Cells(Rd, 4)
Pd = d Mod 2
Nd = Val(d)
End If
For Re = 2 To Ce + 1
If Cells(Re, 5) = "" Then
e = ""
Pe = ""
Ne = 0
Else
e = Cells(Re, 5)
Pe = e Mod 2
Ne = Val(e)
End If
For Rf = 2 To Cf + 1
If Cells(Rf, 6) = "" Then
f = ""
Pf = ""
Else
f = Cells(Rf, 6)
Pf = f Mod 2
Nf = Val(f)
End If
For Rg = 2 To Cg + 1
If Cells(Rg, 7) = "" Then
g = ""
Pg = ""
Ng = 0
Else
g = Cells(Rg, 7)
Pg = g Mod 2
Ng = Val(g)
End If
Do While Worksheets(2).Cells(R, Col) <> ""
Col = Col + 1
If Col = 101 Then
R = R + 1
Col = 1
End If
Loop
Worksheets(2).Cells(R, Col) = a & b & c & d & e & f & g
Next Rg
Next Rf
Next Re
Next Rd
Next Rc
Next Rb
Next Ra
End Sub
请求各位高手指教!!!

如果有高手能解决,请将代码信息发邮件往924576149@QQ.COM.多谢了!!!

复式排列表1.rar

120.46 KB, 下载次数: 18

TA的精华主题

TA的得分主题

发表于 2013-1-30 16:05 | 显示全部楼层
图片看不到内容。请上传附件。

TA的精华主题

TA的得分主题

 楼主| 发表于 2013-1-31 21:09 | 显示全部楼层
你好,文件经过压缩上传了,附件没有VBA编程器麻烦你了.谢谢!!  

复式排列表1.rar

120.46 KB, 下载次数: 15

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

本版积分规则

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

GMT+8, 2024-5-22 07:06 , Processed in 0.029085 second(s), 12 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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