作者zchien (小建)
看板Visual_Basic
标题Fw: [VBA]请问这样多重回圈逻辑应该怎麽写
时间Tue Jul 30 11:13:26 2013
我是用EXCEL 2007
sheet1有下面资料:
第一栏是日期+时间,第二栏是AAAA或是BBBB之类的资料
02/04/2013 00:01:46 AAAA
02/04/2013 00:02:15 AAAA
02/05/2013 00:02:44 AAAA
02/05/2013 23:00:02 BBBB
02/06/2013 23:00:33 BBBB
02/06/2013 23:01:17 BBBB
02/08/2013 23:19:18 BBBB
02/08/2013 23:19:18 BBBB
sheet2有下面资料:
2013/2/4 2013/2/5 2013/2/6 2013/2/7 2013/2/8
AAAA
BBBB
我想统计sheet1里面有多少AAAA和BBBB,分别将数量写入到
sheet2所相对应的栏位日期下面
例如上面范例,我希望显示结果如下
2013/2/4 2013/2/5 2013/2/6 2013/2/7 2013/2/8
AAAA 2 1
BBBB 1 2 2
我用了一个很麻烦的方式..
我分别将sheet1和sheet2内容都读成阵列
写了三重回圈...去比较..但是计算上有点小问题
会跑出下面结果
2013/2/4 2013/2/5 2013/2/6 2013/2/7 2013/2/8
AAAA 2 3
BBBB 1 3 5
我暂时还想不到更好写法..而且错误的地方还想不到怎麽改...想请大家帮帮忙
谢谢
我跑回圈的程式码如下
count = 1
For n = 2 To Sheet2_Row
For m = 1 To Sheet1_Row
If Sheet2资料(n) = Sheet1资料(m) Then
For k = 1 To i - 1
If Sheet2时间(k) = Sheet1时间(m) Then
Worksheets("sheet2").Cells(n, k + 1) = count
count = count + 1
End If
Next k
End If
Next m
count = 1
Next n
--
※ 编辑: zchien 来自: 123.205.138.242 (07/30 11:14)
1F:→ MOONRAKER:只要一个回圈就好却写到三层 你也真鲜 07/30 13:18
2F:→ zchien:请问要怎麽样写成一个回圈呢..可以帮忙说明吗??谢谢 07/30 13:31
3F:→ tsongs:无论如何都要3次没错阿 我有时也会苦恼要怎写这类 07/30 19:12
4F:→ tsongs:我会想最少次读取 能不能只读一次 07/30 19:16
5F:→ tsongs:有时写入记忆体会快些 用ARRAY 07/30 19:19
6F:→ tsongs:直接在EXCEL上比对会比较慢 量大时很明显 07/30 19:20
8F:→ zchien:谢谢Marty..我受教了..这段程式码..我写了快100行.. 07/31 14:27
9F:→ zchien:想不到竟然只要几10行即可..只是我的资料变数比较多.. 07/31 14:28
10F:→ zchien:所以不是只有AAAA,BBBB...而且有几千笔...但很感谢帮忙.. 07/31 14:29
11F:→ tsongs:不读AAAA跟日期当然可以 要读就不行 各要读一次 所以3次 07/31 15:00
12F:→ MOONRAKER:三次和三层是不一样的。 08/02 17:23