求助一段VBA代码,循环组合条件:在单元格E2至E3区域中(E1为标题),单元格内容分别是:E2=3128,E3=6754要求:1、固定取E2的第四位作一个数,再在E2的其他三位及E3的一至三位共6位中任意取三位分

来源:学生作业帮助网 编辑:六六作业网 时间:2024/11/28 04:56:19
求助一段VBA代码,循环组合条件:在单元格E2至E3区域中(E1为标题),单元格内容分别是:E2=3128,E3=6754要求:1、固定取E2的第四位作一个数,再在E2的其他三位及E3的一至三位共6位

求助一段VBA代码,循环组合条件:在单元格E2至E3区域中(E1为标题),单元格内容分别是:E2=3128,E3=6754要求:1、固定取E2的第四位作一个数,再在E2的其他三位及E3的一至三位共6位中任意取三位分
求助一段VBA代码,循环组合
条件:在单元格E2至E3区域中(E1为标题),单元格内容分别是:E2=3128,E3=6754
要求:1、固定取E2的第四位作一个数,再在E2的其他三位及E3的一至三位共6位中任意取三位分别作三个数,将这四个数相加,取结果的个位数放在G2单元格.
2、固定取E3的第四位作一个数,再把第1点6位数其中未相加的三位数分别作三个数,将这四个数相加,取结果的个位数放在G3单元格.
3、总结,E列双行数据循环组合(各第四位做固定数不参与循环组合)操作结果有20个,依次放在G-Z区域
4、接着循环组合E4至E5区域,
5、循环至E区域为空.

求助一段VBA代码,循环组合条件:在单元格E2至E3区域中(E1为标题),单元格内容分别是:E2=3128,E3=6754要求:1、固定取E2的第四位作一个数,再在E2的其他三位及E3的一至三位共6位中任意取三位分
为方便使用,根据需求自定义一个函数,在工作表中可以象内置函数一样任意引用,非常方便.
Function SHuangZuheWei(ingA As Integer, ingB As Integer, ingHexu As Integer, booBoolean As Boolean) As Integer
函数返回的是一个新数的十位或个位.ingA 是第一个数(E2),ingB是第二个数(E3),ingHexu 是1-20范围内的自然数,表示函数返回的是第 ingHexu 个新数的十位或个位,booBoolean 是布尔参数,值 True 表示函数返回新数的十位,值 False 表示返回函数个位.
在代码编辑器里插入一个模块,将下面的函数代码粘贴到刚插入的模块里,保存即可在工作表里引用了.
Function SHuangZuheWei(ingA As Integer, ingB As Integer, _
ingHexu As Integer, booBoolean As Boolean) As Integer

'声明循环变量
Dim I As Integer
Dim J As Integer
Dim K As Integer

'声明新数计数变量
Dim N As Integer
'声明保存两个数的各位的数组变量
Dim arrWeiA(1 To 4) As Integer
Dim arrWeiB(1 To 4) As Integer

'声明保存参与组合的6个数的数组变量
Dim arrJiashu(1 To 6) As Integer
'声明分别保存新数十位与个位的数组变量
Dim arrJiashuA(1 To 20) As Integer
Dim arrJiashuB(1 To 20) As Integer
'防错:多余4位截取低4位,不足4位高4位补0
ingA = Val(Right("000" & CStr(ingA), 4))
ingB = Val(Right("000" & CStr(ingB), 4))

'提取两个四位数的各位
For I = 1 To 4
arrWeiA(I) = Mid(ingA, I, 1)
arrWeiB(I) = Mid(ingB, I, 1)
Next I
'提取两个四位数的低3位作为6个供组合的加数
For I = 1 To 3
arrJiashu(I) = arrWeiA(I + 1)
Next I
For I = 4 To 6
arrJiashu(I) = arrWeiB(I - 2)
Next I
'循环组合
For I = 1 To 4
For J = I + 1 To 5
For K = J + 1 To 6
N = N + 1
'组合求和
arrJiashuA(N) = arrWeiA(1) + arrJiashu(I) _
+ arrJiashu(J) + arrJiashu(K)
arrJiashuB(N) = arrWeiB(1) + arrJiashu(I) _
+ arrJiashu(J) + arrJiashu(K)

Next K
Next J
Next I

If ingHexu > 0 And ingHexu < 21 Then
If booBoolean = True Then
'返回所有新数组合中第 ingHexu (整参)个新数十位
SHuangZuheWei = Val(Right(arrJiashuA(ingHexu), 1))
Else
'返回所有新数组合中第 ingHexu (整参)个新数个位
SHuangZuheWei = Val(Right(arrJiashuB(ingHexu), 1))
End If
Else
'设置错误,以便函数捕获超出范围错误
SHuangZuheWei = ""
End If

End Function
下面按提问者的要求以 SHuangZuheWei 自定义函数的使用为例简述如下:
ingA、ingB两数分别放在E2、E3单元格.要求所有的组合出的新数的十位放在G2:Z2的区域;个位放在G3:Z3的区域.数据两行一组,往下填充.
则在G2单元格输入公式:
=SHuangZuheWei($E2,$E3,COLUMN(G2)-COLUMN($G2)+1,TRUE)
在G3单元格输入公式:
=SHuangZuheWei($E2,$E3,COLUMN(G3)-COLUMN($G3)+1,FALSE)
说明:公式中的表达式 COLUMN(G2)-COLUMN($G2)+1 返回一个1-20范围内的自然数.表示当前单元格所在的列号(变动的)与固定的G列的列号之差加1.
然后将G2:G3区域往有填充复制至Z2:Z3;再将G2:Z3区域往下填充至E列数据的末端(最下面).
OK!大功告成!

求助一段VBA代码,循环组合条件:在单元格E2至E3区域中(E1为标题),单元格内容分别是:E2=3128,E3=6754要求:1、固定取E2的第四位作一个数,再在E2的其他三位及E3的一至三位共6位中任意取三位分 求助一段VBA代码(合并)要求:1、合并F、I列,结果放在J列.2、循环至F、I列为空 excel for循环函数求和,求VBA计算代码!以部门相同为条件,分别求出1月份、2月份、3月份各部门“一档”、“二档”的小计之和,并填充在相对应的红色区域处! 求助一段VBA代码(合并、相减除10取余数)要求:1、把F2和F3合并,(F1为标题),结果放在F2.如1和2,合并为12,同时删除F3内容.接着把F4和F5合并(同上)直至F列为空.2、把I2减I3除10取余数,(I1为 求助一段VBA代码(合并和相加,取奇偶数)要求:1、把F2和F3合并,(F1为标题),结果放在F2.如1和2,合并为12,同时删除F3内容.接着把F4和F5合并(同上)直至F列为空.2、把I2和I3相加,(I1为标题), vba中使用do…loop循环,怎样才能保证在x=abc的时候为最后一次循环? VBA程序设计代码,设计一个函数,通过输入三角形的三个边长,计算三角形的面积,要求函数在标准模块中添加代码应该怎么写?急 如何利用Excel进行运费计算?VBA代码 分段表示 1-20奇偶数之和的vba宏过程代码 vba的for next循环语句内部机制是如何的?在其运转期间改变终值(一变量)是否会影响循环次数? EXCEL中,求教同列同内容合并!EXCEL中,如何对同列同内容进行自动合并!或者对同行同内容进行自动合并!系统无此功能,用VBA代码也行!可直接写一段VBA代码给我也行啊,谢谢! VBA统计两个数字组合的次数0-9数字两两组合,但是不要00,11,这样相同的组合,也不要前面数字比后面数字大的组合,比如23可以,而32不可以,这样所有的组合有45组,现在单元格里有很多这种组合(单 Vba几种循环语句是怎么写的 matlab运算速度求助在matlab里执行以下代码,只要0.5sA = 1:4096;ticfor i=1:1000A=fft(A);A=ifft(A);endtoc但是如果把循环中的代码改成B=A;A=fft(B);B=ifft(A);运行时间就会暴增到32s.谁能帮我解释一下这是什么原 在循环语句中,条件循环语句、计数型循环语句、指针型循环语句有何特点? EXCEL2003随机数;A1到AX20范围内,生成1到1000的不重复随机整数,可以帮忙写一段这样的VBA代码吗?也希望最后生成的数字不容易被看出什么规律(因为自己复制过一段代码,但最后生成的结果总是每 EXCEL2003随机数;A1到AX20范围内,生成1到1000的不重复随机整数,可以帮忙写一段这样的VBA代码吗?也希望最后生成的数字不容易被看出什么规律(因为自己复制过一段代码,但最后生成的结果总是每 关于条件判断语句变量a可以取3个值,0、1、2.当a=1时,执行一段代码;当a=2时,执行另一段代码;当a=0时,给a随机赋值1或者2,之后在执行相应代码.请问如上过程该如何用C实现.li97as1 的回答是比较