ET疑难千寻千解丛书之EXCEL2010编程与实践 罗刚君 章兰新 黄朝阳 编著
疑难30
如何找出还款时间超过一年及未还款的客户信息 如图所示的C列为客户还款的起始时间,D列为实际还款时间。如何实现提取出所有未还款及超过1年未还款者的所有信息? è解决方案 利用For...Next循环逐一对还款时间和购货时间进行比较,如果购货时间到还款时间在1年之内则将该行隐藏,剩下的所有数据即为还款时间超过一年及未还款的客户信息。 í操作方法 步骤1
确定活动工作表为“还款记录表”,按【Alt+F11】组合键打开VBE窗口。 步骤2
选择菜单“插入”→“模块”,并输入以下代码:
- Sub 取出还款时间超过一年及未还款的客户() '其余客户的资料隐藏
- Dim rng As Range, cell As Range
- For Each rng In Range([c2], Cells(Rows.Count, 3).End(xlUp))
- '对C列所有数据区域进行查找
- If Len(rng.Offset(0, 1)) > 0 Then '如果对应的D列值长度大于0
- '如果还款时间超过购货时间12个月以内
- If Evaluate("Datedif(" & rng.Address & ", " & rng.Offset(0, 1).Address
- & ", ""M""" & ")") < 12 Then
- '将所有符合条件的单元格合并
- If cell Is Nothing Then Set cell = rng Else Set cell =Application.
- Union(cell, rng)
- End If
- End If
- Next rng
- '如果有符合条件的单元格,则将它隐藏(剩下的是还款时间超过一年以及未还款的客户)
- If Not cell Is Nothing Then cell.EntireRow.Hidden = True
- End Sub
复制代码步骤3
光标置于代码中任意位置,并按【F5】键执行,所有1年之内完成还款者全部隐藏,而其余行是被筛选出来的,如图所示。
============================= 以上摘自《EXCEL2010编程与实践》
|