Excel精英培训网

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

[VBA] 030-找出特定用户信息-疑难千寻千解丛书(VBA)

[复制链接]
发表于 2011-2-16 15:43 | 显示全部楼层 |阅读模式
ET疑难千寻千解丛书之EXCEL2010编程与实践
罗刚君 章兰新 黄朝阳 编著

疑难30
如何找出还款时间超过一年及未还款的客户信息
如图所示的C列为客户还款的起始时间,D列为实际还款时间。如何实现提取出所有未还款及超过1年未还款者的所有信息?
è解决方案
利用For...Next循环逐一对还款时间和购货时间进行比较,如果购货时间到还款时间在1年之内则将该行隐藏,剩下的所有数据即为还款时间超过一年及未还款的客户信息。
í操作方法
步骤1
确定活动工作表为“还款记录表”,按【Alt+F11】组合键打开VBE窗口。
步骤2
选择菜单“插入”→“模块”,并输入以下代码:

  1. Sub 取出还款时间超过一年及未还款的客户()  '其余客户的资料隐藏
  2.   Dim rng As Range, cell As Range
  3.   For Each rng In Range([c2], Cells(Rows.Count, 3).End(xlUp))
  4.   '对C列所有数据区域进行查找
  5.     If Len(rng.Offset(0, 1)) > 0 Then '如果对应的D列值长度大于0
  6.     '如果还款时间超过购货时间12个月以内
  7.       If Evaluate("Datedif(" & rng.Address & ", " & rng.Offset(0, 1).Address
  8.       & ", ""M""" & ")") < 12 Then
  9.         '将所有符合条件的单元格合并
  10.         If cell Is Nothing Then Set cell = rng Else Set cell =Application.
  11.         Union(cell, rng)
  12.       End If
  13.     End If
  14.   Next rng
  15.   '如果有符合条件的单元格,则将它隐藏(剩下的是还款时间超过一年以及未还款的客户)
  16.   If Not cell Is Nothing Then cell.EntireRow.Hidden = True
  17. End Sub
复制代码
步骤3
光标置于代码中任意位置,并按【F5】键执行,所有1年之内完成还款者全部隐藏,而其余行是被筛选出来的,如所示。


=============================
上摘自《EXCEL2010编程与实践》


本帖子中包含更多资源

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

x
excel精英培训的微信平台,每天都会发送excel学习教程和资料。扫一扫明天就可以收到新教程
发表于 2011-4-9 21:05 | 显示全部楼层
回复

使用道具 举报

发表于 2011-8-28 14:45 | 显示全部楼层
回复

使用道具 举报

发表于 2012-9-16 22:53 | 显示全部楼层
Datedif(" & rng.Address & ", " & rng.Offset(0, 1).Address & ", ""M""" & ")
这段代码不理解。
Datedif的第一个参数为起始日期,为什么不直接取该单元格的值呢?而是输入" & rng.Address & "。
rng.Address应该是单元格的地址,为什么可以这么计算?
而第三个参数,为什么不是"M",而是""M""" & "这么复杂?
回复

使用道具 举报

发表于 2012-9-16 23:23 | 显示全部楼层
greatprairie 发表于 2012-9-16 22:53
Datedif(" & rng.Address & ", " & rng.Offset(0, 1).Address & ", ""M""" & ")
这段代码不理解。
Datedi ...

弄明白了。
1. "
Datedif(" & rng.Address & ", " & rng.Offset(0, 1).Address & ", ""M""" & ")"整个为方法Evaluate的输入字符串。
2. 该字符串的分解为:
"Datedif(" & rng.Address & ", " & rng.Offset(0, 1).Address & ", ""M""" & ")"
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-6-1 20:33 , Processed in 0.262268 second(s), 8 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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