|
用03版的,打开38楼附件。没看代码前,想想也是,先复制 符合条件的到表2,然后回头删除表1。
见:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Cells.Count > 1 Then Exit Sub
If Target.Value = "离职" Then
Target.EntireRow.Copy Sheets(2).Range("A65536").End(xlUp).Offset(1, 0)
Target.EntireRow.Delete
End If
End Sub
38楼的代码!
回39楼,用EXCEL 的 菜单栏--工具-->宏,点击 V B 编辑器 就能看到了.
=====重新回来编辑下========
由于用宏删除后,无法撤销。那么,涉及个问题,就是重新返回最近的记录,即:撤销功能。
如果需要撤销,则可以再编辑个宏,在“在职”表中,插入个“撤销”按钮。
内容大意应该为:
读取“离职”表最后条内容,复制到“在职表”--有数据的行+1 中的行,即 数据只有到A5行了,那么撤销后,返回的数据,则要放在A6。
如果非要弄得更加清楚的话,则在 离职表中,员工信息最后列(工号、姓名、部门、入职时间、转正时间、是否离职)后面加1列,就是“删除信息时间”。
方法1是:按时间先后(按最大值)来计算。
方法2:目前的时间 - 删除时间,数字越小的优先。
复制到“在职”表后,最后列清空(="").
就能完成了。
本人学过编程(C,C++,PowerBulider,可惜JAVA和Delphi 当时学时候,感觉学比较麻烦,就没认真学习了,所以弄到现在这个下场,弄啥啥不会~~),但大致上还是知道个编程思想。
但可惜的是,不懂VB,最近EXCEL人事表弄的头疼。可以放个模板上去给大家看看,没完工的,不过目前还是自己做,每天弄到凌晨2点。有时候测试几个函数是否能成功套用,都用1~2个小时。目前还在自学中。
仅奉个小作,半拉子工程,没做完的,但大致思想放在最后个“详细要求表”里了。
[ 本帖最后由 wzyqwdl 于 2010-5-24 23:45 编辑 ] |
|