Excel精英培训网

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

[已解决]这代码计数是怎么循环的?

[复制链接]
发表于 2013-9-29 21:43 | 显示全部楼层 |阅读模式
本帖最后由 adadada 于 2013-9-29 22:14 编辑

Sub 取本月生日()
    rw = [a65536].End(3).Row - 4 '获取数据表最大行位置,并减去前面4行
    arr = [a5].Resize(rw, 13) '第5行开始的原始数据读入VBA内存数组arr (这样速度快效率高)
    m = Month(Now()) '获取本月月份常量 (事先存入变量,比以后循环中反复计算Month(Now())效率高)
    For i = 1 To rw '遍历数据表各行(数组的1-rw行,相当于实际工作表的第5行开始)
        If IsDate(arr(i, 13)) Then '如果第13列M列是日期
            If Month(arr(i, 13)) = m Then '并且该生日是本月
                cnt = cnt + 1 '计数值+1
                msgtxt = msgtxt & arr(i, 4) & vbTab & arr(i, 9) & vbTab & arr(i, 13) & vbCr
                '合并有效数据,中间用Tab分隔,而不是用5个空格,这样可以自动对齐
            End If
        End If
    Next
    MsgBox "本月生日的有 " & cnt & "人:" & vbCr & msgtxt & "以上"
End Sub
最佳答案
2013-9-29 21:59
本帖最后由 我心飞翔410 于 2013-9-29 22:14 编辑

循环判断是否满足条件 满足就就加一  cnt初始值为0   最后cnt得到的结果相当于统计满足条件的有多少个
你这两个if  可以用and
For i = 1 To rw
        If IsDate(arr(i, 13)) and Month(arr(i, 13)) = m  Then '如果第13列M列是日期
                cnt = cnt + 1 '计数值+1
                msgtxt = msgtxt & arr(i, 4) & vbTab & arr(i, 9) & vbTab & arr(i, 13) & vbCr
                '合并有效数据,中间用Tab分隔,而不是用5个空格,这样可以自动对齐
        End If
  Next
发表于 2013-9-29 21:59 | 显示全部楼层    本楼为最佳答案   
本帖最后由 我心飞翔410 于 2013-9-29 22:14 编辑

循环判断是否满足条件 满足就就加一  cnt初始值为0   最后cnt得到的结果相当于统计满足条件的有多少个
你这两个if  可以用and
For i = 1 To rw
        If IsDate(arr(i, 13)) and Month(arr(i, 13)) = m  Then '如果第13列M列是日期
                cnt = cnt + 1 '计数值+1
                msgtxt = msgtxt & arr(i, 4) & vbTab & arr(i, 9) & vbTab & arr(i, 13) & vbCr
                '合并有效数据,中间用Tab分隔,而不是用5个空格,这样可以自动对齐
        End If
  Next
回复

使用道具 举报

 楼主| 发表于 2013-9-29 22:26 | 显示全部楼层
我心飞翔410 发表于 2013-9-29 21:59
循环判断是否满足条件 满足就就加一  cnt初始值为0   最后cnt得到的结果相当于统计满足条件的有多少个
你 ...

If IsDate(arr(i, 13)) Then If Month(arr(i, 13)) = m Then cnt = cnt + 1:msgtxt = msgtxt & arr(i, 4) & vbTab & arr(i, 9) & vbTab & arr(i, 13) & vbCr
能不能写在一行???
回复

使用道具 举报

发表于 2013-9-29 22:40 | 显示全部楼层
用and链接 一样效果 干嘛两个if啊 可以就是要用:把每句分开
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-22 22:12 , Processed in 0.237422 second(s), 11 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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