Excel精英培训网

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

[已解决]谢谢阿童木老师,我导出的组合怎么不足五位?

[复制链接]
发表于 2011-5-25 15:30 | 显示全部楼层 |阅读模式
本帖最后由 lhj323323 于 2011-5-25 20:51 编辑

老师:
上传的附件中有写好的程序,感觉应是对的,但是导出的组合却不是五位,不知我错在什么地方了
最佳答案
2011-5-25 15:46
不够仔细,数组定义错误
  1. Sub 组合6()
  2.   Dim i&, j&, k&, l&, m&, Ar1, Ar2, Ar3, Ar4, Ar5, Arr1(), r&
  3.   Dim Myr%
  4. Application.ScreenUpdating = False
  5. '========根据用户对百十个位的杀号后的剩余球号进行组合=================
  6.   Ar1 = Range("i16:i" & [i65536].End(xlUp).Row)
  7.   Ar2 = Range("j16:j" & [j65536].End(xlUp).Row)
  8.   Ar3 = Range("k16:k" & [k65536].End(xlUp).Row)
  9.   Ar4 = Range("l16:l" & [l65536].End(xlUp).Row)
  10.   Ar5 = Range("m16:m" & [m65536].End(xlUp).Row)

  11. For i = 1 To UBound(Ar1)
  12.     For j = 1 To UBound(Ar2)
  13.         For k = 1 To UBound(Ar3)
  14.             For l = 1 To UBound(Ar4)
  15.                 For m = 1 To UBound(Ar5)
  16.                     r = r + 1
  17.                     '===========导入单列结果=====ok
  18.                     ReDim Preserve Arr1(1 To r)
  19.                     Arr1(r) = Ar1(i, 1) & " " & Ar2(j, 1) & " " & Ar3(k, 1) & " " & Ar4(l, 1) & " " & Ar5(m, 1)
  20.                 Next
  21.             Next
  22.         Next
  23.     Next
  24. Next
  25. Stop
  26. Sheet2.Range("g2:g" & Sheet2.[g65536].End(3).Row).ClearContents
  27. Sheet2.[g2].Resize(r, 1) = Application.Transpose(Arr1) '导出单列
  28. Sheet2.[g1] = Array("排五组合")
  29. Erase Arr1 '清空数组
  30. Erase Ar1
  31. Erase Ar2
  32. Erase Ar3
  33. Erase Ar4
  34. Erase Ar5
  35. Application.ScreenUpdating = True
  36. Sheet2.Activate
  37. End Sub
复制代码

求助.rar

13.28 KB, 下载次数: 8

发表于 2011-5-25 15:46 | 显示全部楼层    本楼为最佳答案   
不够仔细,数组定义错误
  1. Sub 组合6()
  2.   Dim i&, j&, k&, l&, m&, Ar1, Ar2, Ar3, Ar4, Ar5, Arr1(), r&
  3.   Dim Myr%
  4. Application.ScreenUpdating = False
  5. '========根据用户对百十个位的杀号后的剩余球号进行组合=================
  6.   Ar1 = Range("i16:i" & [i65536].End(xlUp).Row)
  7.   Ar2 = Range("j16:j" & [j65536].End(xlUp).Row)
  8.   Ar3 = Range("k16:k" & [k65536].End(xlUp).Row)
  9.   Ar4 = Range("l16:l" & [l65536].End(xlUp).Row)
  10.   Ar5 = Range("m16:m" & [m65536].End(xlUp).Row)

  11. For i = 1 To UBound(Ar1)
  12.     For j = 1 To UBound(Ar2)
  13.         For k = 1 To UBound(Ar3)
  14.             For l = 1 To UBound(Ar4)
  15.                 For m = 1 To UBound(Ar5)
  16.                     r = r + 1
  17.                     '===========导入单列结果=====ok
  18.                     ReDim Preserve Arr1(1 To r)
  19.                     Arr1(r) = Ar1(i, 1) & " " & Ar2(j, 1) & " " & Ar3(k, 1) & " " & Ar4(l, 1) & " " & Ar5(m, 1)
  20.                 Next
  21.             Next
  22.         Next
  23.     Next
  24. Next
  25. Stop
  26. Sheet2.Range("g2:g" & Sheet2.[g65536].End(3).Row).ClearContents
  27. Sheet2.[g2].Resize(r, 1) = Application.Transpose(Arr1) '导出单列
  28. Sheet2.[g1] = Array("排五组合")
  29. Erase Arr1 '清空数组
  30. Erase Ar1
  31. Erase Ar2
  32. Erase Ar3
  33. Erase Ar4
  34. Erase Ar5
  35. Application.ScreenUpdating = True
  36. Sheet2.Activate
  37. End Sub
复制代码
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-30 07:11 , Processed in 0.152095 second(s), 9 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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