Excel人力资源管理

岁月无恒 Lv.5

关注
本帖最后由 岁月无恒 于 2020-6-12 23:42 编辑

通讯录管理系统现已更新完成,现将文件分享给各位朋友。

VCF格式通讯录读取工具.rar   2020-5-18 03:11 上传

925.94 KB, 下载次数: 543

通讯录管理工具【升级版】.rar   2020-6-12 23:42 上传

1005.74 KB, 下载次数: 1152







下面是使用说明:
经过大半个月的时间,终于完成了通讯录管理工具的升级工作。在此,感谢各位朋友的耐心等待。
升级之前的通讯录由于是个人使用,制作得比较粗糙。确实没有想到会有这么多朋友喜欢这个工具,所以这次花了很多时间,把大家在使用过程中反馈的问题完善了;修复了一些Bug,还增加了一些实用的个性化功能。
申明:文章中示例图片中的姓名、电话号码、地址等信息,都是随机模拟的,并非真实信息。


升级内容
1、界面更新,修复Bug;
2、查询功能升级;
3、增加安全选项设置;
4、增加数据导入功能;
5、增加数据导出功能;
6、其他个性化功能升级。


界面更新、修复Bug
一、界面更新
b8d92b6ec3944d229d42e2633172ca75.jpg




1、【数据导入】:本次重点升级功能,主要用于从其他excel文件中导入通讯录数据。
数据导入界面如下,具体操作使用说明,后面有专门的讲解:
0c866920b9314e0dac3b6e787e5b9082.jpg




2、【号码查询】:核心功能,用于对通讯录数据的查询、编辑、搜索等。
号码界面如下,具体操作使用说明,后面有专门的讲解:
bdd3ae4ee2d641488aa4287e28b2eec3.jpg




3、【数据导出】:数据导出是本次重点升级功能,数据导出的入口只在查询界面中。
数据导出界面如下,具体操作使用说明,后面有专门的讲解:
2507d88172ad495cb09d1368b8786467.jpg


将数据导出功能的入口放在查询界面,是出于以下考虑:通讯录设计初衷是存放所有的联系人信息,但是并不是每次都需要将所有联系人数据都导出,很多时候我们仅仅是需要其中的一部分,所有数据导出窗体中有一个选项是:导出【查询结果】,这个需要结合查询窗体的数据。



4、【数据维护】:点击切换到通讯录数据库,用于批量编辑、删除通讯用。
在通讯录数据库中,应朋友们的要求,增加了一列电话号码,还增加了分组信息、地址信息。
ea79ca3913ea468ea9e23a082729bf67.jpg


在这个表中有几个注意事项:
① 标题行只能有一行;
② 标题行只能录入4个字(号码查询、数据导入、数据导出窗体中,会直接调用标题栏内容,超过4个字会显示不完整);
③ 姓名、所在部门、担任职务、工作号码、生活号码这几列的位置不能改变,两列电话号码的顺序可以调换;
④ 在数据导入时,有一个【以手机号码为依据】的选项,这里的手机号码指的是这里的【工作号码】,所以这一列最好填写个人手机号码;



5、列表设置:点击切换到基础设置表,用于设置分组、部门、职务的下拉列表。
此处仅根据通讯录数据库的更新,增加了【分组】这一列信息设置。
236fb4fbca20488a8d418d5e7f586afe.jpg




6、全选选项:本次重点升级功能,用于开启密码保护,设置、修改密码,取消保护等。
安全选项界面如下,具体操作使用说明,后面有专门的讲解:
c548858fc05a4810b4f1509473253878.gif




7、关于:新增按钮,关于本程序的一些说明。
1a4e4e63d58b4ce9a5a72e32fa135159.jpg


此窗体为了效果美化,去掉了标题栏,若要关闭窗体,只需要双击窗体上方和下方的空白(无文字)区域。




8、图标升级:旧版本的通讯录功能图标,确实不是很好看,本次本次对功能图标也做了升级美化,升级后的图标,更清新简约。
d21a3fea9ec847ed9031d87d8f0cb77b.jpg



其他问题
一、下载文件后,如果出现【找不到工程或库】的错误提示,可以参考参考下面这篇文章的解决方法:
二、代码中使用了一些API函数,如果你使用中出现了一些错误提示,请通过私信留言或者邮件告知我(旧版本的也用了API函数,仅个别朋友反馈出现了兼容性问题)
三、在查询窗体中,如果勾选了复制功能,但是无法实现复制效果。
在VBE编辑器的工具菜单中,打开引用,然后勾选【MicroSoft Forms 2.0 Object Library】即可。
420ce7377bb1434089a02da563df14a8.jpg


四、如何修改封面上的公司信息:只需要取消工作表保护即可,未设置保护密码。




2 人给楼主打赏
1.2万阅读
35回复 倒序

岁月无恒 楼主 2楼

《通讯录管理系统》之 2——安全选项

安全选项是应很多朋友的要求增加的,是重点升级的功能。
很多人认为的安全选项,就是做一个窗体,设置一个登录密码,然后把密码给到大家这么简单。
而我理想中的安全选项,含有以下三种效果:
1、访问保护:设置登录窗口,使用密码登录并打开文件;
2、数据保护:设置数据保护,当达到一定条件文件自毁;
3、用户自定:用户可以自己选择,是开启保护还是不要保护。
围绕以上三点,想了很多方法,最终实现了这样的效果,具体思路如下:
1、文件默认是无任何密码限制,即文件的初始状态;
2、文件第一次打开时,出现一个小提示,给用户三个选择:

①开启保护;

②不开启保护,但是每次打开都弹出此提示;

③不开启保护,以后都不再提示(后续可通过功能按钮直接开启)。

3、选择开启保护,设置登录密码和允许密码错误的次数。其中:

①登录密码是登录系统使用的(因为一旦开启了保护功能,在文件打开时就会有登录窗体,需要密码验证才能打开文件了;

②允许密码错误的次数,这是为数据保护做准备,一旦使用中密码错误的次数达到了设置的值,文件立即自毁(如果不想要这个效果,可以把密码错误的次数设置成一个相当大的值);

4、用户可以自行修改密码、修改允许密码错误的次数、查看记录的密码错误次数、将记录的密码错误次数清零、取消安全保护等;
5、一旦取消了安全保护,文件即回到初始状态,无登录密码、打开文件将会有开启安全保护的提示。



下面我们来分别看看以上这些功能的演示:
一、文件打开提示
4c9faec45193469fb2f1ea77485f1c3a.gif


在第一次打开文件的时候,弹出一个提示框,界面如下:
3e1b8ead58a84da8b4ac65d327654696.jpg


里面有三个选项:
1、点【是】:立即打开安全选项设置界面,进行安全设置;
2、点【否】:关闭本次提示,后面打开文件时再提示;
3、点【取消】:关闭提示,且以后都不再弹出这个提示。



二、安全选项设置
安全选项原理是:设置登录密码,并通过对密码错误次数统计,来检测是否是本人在操作;如果密码错误次数达到设定值,文件即自毁、数据将永远消失。
1、开启保护:
822ff371913b48999f60df73c02d16bb.gif


完成密码设置和密码允许错误的次数设置,,即表示保护功能已开启,这两个都是必须设置的。
在设置密码允许错误的次数时,建议将次数设置大一点,否者一旦密码错误次数过多就可能造成文件和数据丢失。
2、修改密码
30e7e97e3dd14f5ebfe094eef6144ffe.gif


只有开启保护时,才会显示密码修改按钮。
在修改密码时,如果密码错误,会将错误的次数做记录(防止有人利用密码输入界面不停测试密码)。
3、系统登录
845305e3dfb54170b7c8b4dd490d3655.gif


当开启数据保护后,在打开文件时,就会出现登录界面,必须要录入密码才能进入系统,查看、编辑数据;
在登录时,如果密码错误,会将错误的次数做记录。
4、修改密码允许错误次数
acbd9c861f7649509a5c11afbc21fd2a.gif


当开启数据保护后,才能对密码错误次数进行修改;
在修改允许错误次数时,如果密码错误,会将错误的次数做记录。
5、查看、重置错误次数
af4403ae29454e56a24bca658e3a8b3a.gif


查看错误次数,不需要密码,直接点击就可以看到;
重置错误次数,需要密码,且如果密码错误,会将错误次数做记录。
6、达到设置错误次数后的数据保护
这里只是为了演示效果,到执行文件自毁时,演示效果用弹出一个提示框来替代文件自毁,以表示当错误次数达到限制时,可以执行相应代码。(正式版文件是没有的,一达到错误次数,文件直接消失)
de15012130eb423d9b4e6e6a3f1b215a.gif


7、取消保护
当设置了保护后,如果觉得不需要,想要取消保护,直接按照以下操作即可:
9244c0f094144724a24d004f021563e7.gif


取消保护需要验证密码,且密码错误时,会将错误做记录;
取消密码保护后,文件保护回到初始状态,密码被清空、错误次数被清空、允许错误的次数被清空、打开文件时会弹出一个开启保护提示信息。



注意:需要注意的是:在所有需要输入密码的地方,只要密码错误,都会被记录到错误次数中。
以上就是关于通讯录管理系统安全设置的介绍。我使用了一张工作表【安全设置】和两个窗体【LogoIn和保密设置】来实现的以上效果。
如果大家喜欢这种安全设置的思路,可以直接将这两个窗体和这个工作表直接放到你自己的文件中,在对代码做一些简单的适配修改,就可以正常使用了。(将窗体当道你的文件中,只需要先将窗体导出来,然后再导入到你自己的文件中即可)。
但是,相信大家都明白,Excel的密码有时候是很容易被破解的,但是一旦开启了保护功能,就最好给VBA工程加一个密码,以保护我们的后台代码,因为所有的安全设置都是由代码在执行,代码被破坏了,这些安全措施也就没有意义了。

岁月无恒 楼主 3楼

本帖最后由 岁月无恒 于 2020-5-18 22:10 编辑

《通讯录管理系统》之 3——数据查询





查询界面
cc2e1ec3776d437ba97b0dea8e7448aa.jpg


如上图所示,查询界面共分为几个区域:
1、数据检索区:包含三个可以联动的下拉菜单和一个关键字搜索框;
2、按钮区:包含三个功能按钮和两个复制选项
3、列表区:用于显示查询到的结果;
4、下方状态栏:显示结果的数量和搜索说明;
5、右侧编辑区:包含完整的内容显示和五个功能按钮。



一、数据检索区
38e0bea843b048f5b79cc9247ac9c40b.gif


这里主要数用于对数据的检索,检索方式有两种:
1、下拉菜单选择,联动检索;
2、搜索框(多)关键字搜索;
注意:由于姓名比较特殊,有可能知其音单不知其字,如果按文字搜索不一定能搜索到结果,所以针对姓名的搜索,支持姓名首字的拼音,并且不用区分大小写。

但是,这里还有一个不足之处:就是联动搜索和关键字搜索还不能结合使用,现在已有解决思路,下次更新的时候,会做优化处理,希望各位朋友耐心等待下。




按钮区

image.png


按钮区域有三个功能按钮:数据导入、数据导出、展开(收起)详情。
数据导入:数据导入的另一个入口,可以打开数据导入对话框,进行外部数据导入;
数据导出:唯一的数据导出入口,用于将所需的数据导出为我们所需要的;
展开(收起)详情:用于展开或收起右侧数据编辑区域。
按联系人格式复制选项:勾选后,可以自动将所选联系人复制到粘贴板,以联系人的格式;
按快递格式复制选项:勾选后,可以自动将所选联系人复制到粘贴板,以快递信息的格式。
以上功能,大家可以直接下载文件,在使用中看效果。下面动图是【复制】功能的演示。
890ec457c6a84c079707ac6490403f35.gif




列表区
该区域是一个列表框,用于显示数据。
在这里有两个控件可以使用:Listbox和ListView控件。
Listbox控件:相对于ListView控件,兼容性更好,只是界面不太友好,比如不能显示网格线、如果使用数组作为列表对象就不能支持标题栏显示,不支持鼠标滚轮(虽然通过API函数实现了鼠标滚轮的支持,但是在某些版本的系统和Ooffice中,还是存在一些兼容性问题)等;
ListView控件:界面更好看,有可以调整宽度的列及标题栏、支持网格线显示,支持鼠标滚轮操作,但是兼容性不是很好,尤其是在现在64位系统和64位软件已经普及的情况下,这个控件就更不好伺候了,所以就放弃了这个控件的使用。



右侧编辑栏
6f516cb0172e4405b1b375d14beacfcc.jpg


由于列表区能显示的信息非常有限(主要是内容太多,如果所有内容都显示,可能屏幕都装不下,所以在列表框中只显示了重要的信息,其余的信息都在这里完整显示)。
我们直接再说这五个功能按钮:
添加:①用于添加信息,【姓名】和【手机号码】是必填内容,其余为选填内容。②内容添加后,左侧列表区域会自动定位到新增的数据行。
e45efae3373c46b3a3b45b6e88fafa6c.gif


修改:①用于对联系人数据进行编辑,批量的编辑可以在exel表格中,数据的微调和简单修改可以在这里执行。②在初始状态下,【修改】按钮是不可用的,只有在选择左侧列表框内容后,此功能才可以使用。③数据修改后,左侧列表区域会自动定位到编辑的数据。
b79c9c63ec684b4fbeabd90471ebc534.gif


删除:①用于删除所选联系人。②在初始状态下,【删除】按钮是不可用的,只有在选择左侧列表框内容后,此功能才可以使用。③数据删除后,左侧列表区域会自动定位到删除数据的上一行。
4521c8c1b3674987a3eca6a34787f682.gif


清空文本:用于清空编辑区域的文本。用于添加数据时,当发现录入的数据是错误的时候,可用于一键清空,然后重新填写。
69445bfb87f042f3b40e286c2829d1de.gif


退出:用于退出号码查询功能,关闭对话框。。


岁月无恒 楼主 4楼

《通讯录管理系统》之 4——数据导入


数据导入界面
1e21bb11dced42cf8fd4e8a2b65d9693.jpg



关于数据导入的思考

在第一版通讯录发布的文章中,发起过一个投票,虽然只有几个人参与了投票,但是所有参与者都选择了【想要增加数据导入】这一项,再加上不少朋友私信我,希望增加数据导入功能。

既然大家都想要这个功能,那么咱就想办法。

数据导入说起来简单,但是难度却非常大,比如:

1、我不知道你的通讯录数据是什么样的格式;
2、我不知道你的通讯录数据有哪些内容;
3、我不知道你的通讯录数据各列顺序和我设计的表格是否对应;
4、我不知道你的通讯数据列标题名称是否和我设置的一样;
5、我不知道你需要导入哪些数据;
6、我不知道的太多了……

要在这么多未知情况下,设计这个数据导入,确实很有难度。

不过,在经过努力思考、并结合自己的经验,一个高度自定义、极度灵活的数据导入功能最终设计出来了,就是上面你所看到的界面。




数据导入功能演示
800c19a8b487447da38954269ed11902.gif


数据导入的操作流程:

打开外部通讯录所在的工作薄→切换到《通讯录管理系统》→打开数据导入】对话框→选择外部通讯录所在的工作薄→选择外部通讯所在的工作表→设置外部通讯录的表头标题行数→设置导入选项→选择要导入的内容及导入的位置→点击窗体上的【导入数据】→完成导入

备注:
1、在选择导入内容时需要对应,比如设置【姓名】的内容时,需要选择外部通讯中姓名列的表头;
2、如果标题行有多行,同一列存在多个表头,选择任意一个都可以;
3、如果表头存在合并单元格,且选择了合并单元格。只能提取合并区域的第一个单元格所在的列的数据;
4、由于有些朋友喜欢在姓名中添加空格以实现对齐效果,但是又不是所有的表格中都会用空格,所以在导入数据时,会自动进行去空格操作,即姓名、电话号码中的空格不会影响内容判断,【张 三】和【张三】会被认为是同一个人。



导入选项介绍
7d033e54b3e64de78c143bce9d572c8a.jpg


导入选项有主要是对导入数据时的操作进行设置,选项内容及效果分别如下:

1、表头行数:有以下两个作用

①提取标题内容,用以在导入内容中做选择;
②定位第一行数据的位置,以便确定数据区域,提取要导入的数据;

2、全选内容:选择所有的导入内容,省去了一个一个去勾选的麻烦;

3、以姓名为依据:这个比较好理解,就是以姓名为判断依据,姓名相同即为同一个人;

4、以手机号为依据:这个选项在以下情况中有用,有多份通讯录,由于通讯录来源不同,同一个人可能存在多个姓名信息,但是手机号码却是唯一相同的内容,就可以用以手机号为依据进行识别判断;

5、对已有数据的处理——清空:就是先清空已有数据,再导入数据shi,当你们拿到我的通讯录管理系统,就可以用此功能直接导入数据,而不用一个一个去把我现有数据删除了;

6、对已有数据的处理——跳过:已有数据和导入数据中,存在同一个人,当已有数据中有工作号码时,导入数据的工作号码就不会被导入;但是当已有数据中无生活号码时,即使选择【跳过】生活号码依然会被导入。

2e80088c809a48a888cd19544a3d705e.gif


7、对已有数据的处理——覆盖:已有数据和导入数据中,存在同一个人,当已有数据中有工作号码时,直接用新数据覆盖已有数据;但是当已有数据不为空并且导入数据对应内容为空时,则不会覆盖(即只会用非空数据覆盖已有数据,空白数据会被忽略)。

185c322d2b52482e82b088729422f33d.gif


8、对已有数据的处理——合并:即将现有数据和导入数据进行合并。这个适用于合并同一个人的多个信息,比如邮箱、地址等。合并时会有以下几个特点:

①已有数据和导入数据内容一样时,不会合并,只会保留已有数据;
②当已有数据包含导入数据时,会保留已有数据;
③当导入数据包含已有数据时,会导入外部数据;
④当导入数据和已有数据不是包含关系时,则将两个数据进行何必。

d21e445efa394d7da2b233c960937c00.gif

关于数据导入功能,就介绍到这里。






岁月无恒 楼主 5楼

《通讯录管理系统》之 5——数据导出






数据导出界面
d4c926156e1a4e57a761e52d44126641.jpg


数据导出的入口,在号码查询窗体中,这样设计是处于以下考虑:

我们的通讯录系统会录入很多数据,但是并不是每次都会将数据全部导出,很多时候会先进行数据搜索,然后只是将查询到的数据导出,故将数据导出的唯一入口放在这里。



功能介绍

看上面的数据导出界面,分两个区域:

一、左侧为导出内容选项,即选择要导出的列内容和选择要导出的数据范围;

1、姓名为必选项,因为通讯录整理完成后,姓名还是会作为通讯录中对号码识别的唯一信息;

2、如果号码查询界面无数据搜索,则导出【查询结果】选项不可用。


二、右侧为到处后的保存选项,即设置保存路径、设置文件格式、设置文件名称。

路径:可直接点击按钮, 选择保存的文件夹,不用手动录入,方便实用;

格式:设置了四种保存格式:Xlsx格式、Xls格式、Csv格式、Pdf格式、Vcf格式

d7623c1880b042d689ddb60a261bfefc.jpg


1、xlsx格式和xls格式:都是excel工作薄文件格式,只是xls为2003版的低版本格式;

2、CSV格式:数据表格式,可用于很多电子邮箱中通讯录的导入(通过电子邮箱通讯录的导入和导出,可以间接的将通讯录转换为Vcf格式);

3、PDF格式:这个是常用文件格式,考虑或许有朋友用得上,就做了一个选项;

4、VCF格式:手机通讯格式,即导出为手机通讯格式,可直接在手机中读取此文件,将通讯录批量导入到手机中。由于是通讯录管理系统,就需要考虑和手机通讯的数据联系,并且也有不少朋友在咨询如何将excel格式的通讯录导入到手机通讯录中,所以设置了这样一个功能(由于不同手机的VCF通讯录版本差异【有的2.1,有的3.0】,还要考虑不同的文件编码格式,此功能目前在我自己的手机上测试通过,希望各位朋友及时将问题反馈给我,我好做后续的维护和更新)

如果选择此项,还会增加一个设置选项,根据自己的使用情况选择就可以了(选择后,右侧有简单的说明)。

c4603abf8e314c9a98dfff4acda473bd.gif




操作演示

1、导出为excel工作薄:

b9e457c903044c1f98a758244c88f89c.gif


2、导出为Vcf格式

a1b6590d890046a4b345506a0b9e5f23.gif


如果导出为VCF格式,里面的通讯录数据需要在电脑上查看,需要一个软件来读取(在分享的通讯录文件中,有这个工具,需要的朋友可以直接下载;当然也可以直接双击打开,但是如果一个文件中包含无数个通讯录信息,会一个一个不断的弹出来,直到所有通讯录信息都显示出来,所以这种方式不是很方便)

下面是只导出查询结果的电话号码演示

04f03a971f19498d8a5615b46b271347.gif




数据导出功能,最开始被我认为是用处不大的功能,但是看到很多朋友都在要求增加这个功能,于是就在考虑如何好好设计数据导出功能。于是有像数据导入一样,做成了一个高度灵活、及其方便且功能完善的数据导出。



qqyyh Lv.2 6楼

好牛呀,膜拜!

岁月无恒 楼主 7楼

希望对你有用,感谢支持

wowo000 Lv.4 8楼

拜读大作,岁月无恒老师,高!!强大!!!

岁月无恒 楼主 9楼

引用: wowo000 发表于 2020-5-18 12:22
拜读大作,岁月无恒老师,高!!强大!!!

欢迎使用,感谢你的支持。

岁月无恒 楼主 10楼

引用: qqyyh 发表于 2020-5-18 08:20
好牛呀,膜拜!

欢迎使用,感谢你的支持
加载更多