|
楼主 |
发表于 2013-1-25 14:43
|
显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用 · 内置多项VBA编程加强工具 ★ 免费下载 ★ ★ 使用手册★
香川群子 发表于 2013-1-25 13:31
你还是上个附件吧。
为了保密,可以把除生日以外的信息用随便什么文字代替。
我后来更改了下代码,但是如果超过40人当月生日就显示不出来了!怎么回事呢?- Sub 取本月生日()
- rw = [m65536].End(3).Row - 4 '获取数据表最大行位置,并减去前面4行
- arr = [a5].Resize(rw, 23) '第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) & Space(4) & Chr(9) & arr(i, 9) & vbTab & IIf(Len(arr(i, 9)) > 4, "", Chr(9)) & arr(i, 13) & Chr(9) & Chr(9) & vbCr
- End If
- End If
- Next
- MsgBox msgtxt & "以上", 1 + 64, "杨林认识系统提示您:本月生日的有" & cnt & "人"
- End Sub
复制代码 |
|