Excel精英培训网

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

[已解决]请帮我调试一下这段代码好不好哦

[复制链接]
发表于 2015-11-3 17:04 | 显示全部楼层 |阅读模式
亲,请帮我调试一下这段代码好不好哦?
最佳答案
2015-11-4 13:41
请看附件。

Book1.rar

19.85 KB, 下载次数: 17

发表于 2015-11-4 09:39 | 显示全部楼层
兄弟,猜了半天,没看懂你到底要怎么弄呀![em06]
回复

使用道具 举报

发表于 2015-11-4 13:40 | 显示全部楼层
  1. Sub test()
  2.     arr = Range("a1:y15")
  3.     Dim crr(1 To 24)
  4.     Dim xrr(1 To 24)
  5.     For i = 4 To 12 Step 2
  6.         brr = Cells(i, 1).Resize(1, 24): n = 0        '2、4、6、8...各行入数组
  7.         For j = 1 To UBound(brr, 2)
  8.             If Val(brr(1, j)) > 0 And Val(arr(15, j)) > 0 Then         '本行大于0,15行对应位置大于0,进入数组crr待排序
  9.                 n = n + 1
  10.                 crr(n) = arr(15, j)
  11.             End If
  12.         Next
  13.         If n = 1 Then          '如果crr一个数,直接取用,不排序,直接进结果数组
  14.             nn = nn + 1: xrr(nn) = crr(n)
  15.         Else           '否则对crr排序
  16.             For k = 1 To n - 1
  17.                 For kk = k + 1 To n
  18.                     If crr(k) < crr(kk) Then tmp = crr(k): crr(k) = crr(kk): crr(kk) = tmp
  19.                 Next
  20.             Next
  21.             For k = 1 To n     '排过序后进结果数组
  22.                 If crr(k) > 0 Then nn = nn + 1: xrr(nn) = crr(k)
  23.             Next
  24.         End If
  25.     Next
  26.     [a29].Resize(1, nn) = xrr   '显示结果数组
  27. End Sub
复制代码
回复

使用道具 举报

发表于 2015-11-4 13:41 | 显示全部楼层    本楼为最佳答案   
请看附件。

Book1.rar

23.11 KB, 下载次数: 6

回复

使用道具 举报

 楼主| 发表于 2015-11-6 11:37 | 显示全部楼层
grf1973朋友真厉害,就是这回事了,真是太感谢了。
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-23 16:58 , Processed in 0.339236 second(s), 11 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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