设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

返回列表 发新帖
查看: 2508|回复: 1
打印 上一主题 下一主题

求助用VBA提取符合条件的数据组合

[复制链接]
跳转到指定楼层
1#
发表于 2012-8-21 13:25:54 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
   求助用VBA提取符合条件的数据组合,谢谢!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 分享淘帖 订阅订阅
2#
发表于 2012-8-21 21:47:05 | 只看该作者
本帖最后由 roych 于 2012-8-21 21:49 编辑

俺觉得你把问题复杂化了,先附上代码(写入Sheet1里):
  1. Sub test()
  2. Dim s(1 To 6), P(1 To 4)
  3. Dim i, j, k, l
  4. '分解组合第一个数组
  5. For i = 1 To 6
  6.     s(i) = Range("B5").Offset(0, i - 1)
  7. Next
  8. For i = 1 To 6
  9.     For j = i + 1 To 6
  10.         For k = j + 1 To 6
  11.             a = a & "," & s(i) & ":" & s(j) & ":" & s(k)
  12.         Next
  13.     Next
  14. Next
  15. c = Split(a, ",")
  16. '分解组合第二个数组
  17. For i = 1 To 4
  18.     P(i) = Range("L5").Offset(0, i - 1)
  19. Next
  20. For i = 1 To 4
  21.     For j = i + 1 To 4
  22.         For k = j + 1 To 4
  23.             b = b & "," & P(i) & ":" & P(j) & ":" & P(k)
  24.         Next
  25.     Next
  26. Next
  27. d = Split(b, ",")
  28. '合并两个组合
  29. For i = 1 To UBound(d)
  30.     For j = 1 To UBound(c)
  31.         e = e & "," & c(j) & ":" & d(i)
  32.     Next
  33. Next
  34. f = Split(e, ",")

  35. '写入数据
  36. For i = 1 To UBound(f)
  37.     Range("w" & i + 1) = f(i)
  38. Next
  39. End Sub
复制代码
当然,代码可以更简化些许,不过个人觉得这样写的好处在于可以让大家理清思路。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

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

本版积分规则

QQ|站长邮箱|小黑屋|手机版|Office中国/Access中国 ( 粤ICP备10043721号-1 )  

GMT+8, 2024-11-25 07:16 , Processed in 0.078218 second(s), 27 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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