ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
查看: 19226|回复: 41

[分享] 【升级版】通讯录管理系统

  [复制链接]

TA的精华主题

TA的得分主题

发表于 2020-5-18 03:16 | 显示全部楼层 |阅读模式
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
本帖最后由 岁月无恒 于 2020-6-12 23:42 编辑

通讯录管理系统现已更新完成,现将文件分享给各位朋友。
VCF格式通讯录读取工具.rar (925.94 KB, 下载次数: 583) 通讯录管理工具【升级版】.rar (1005.74 KB, 下载次数: 1253)





下面是使用说明:
经过大半个月的时间,终于完成了通讯录管理工具的升级工作。在此,感谢各位朋友的耐心等待。
升级之前的通讯录由于是个人使用,制作得比较粗糙。确实没有想到会有这么多朋友喜欢这个工具,所以这次花了很多时间,把大家在使用过程中反馈的问题完善了;修复了一些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

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




评分

3

查看全部评分

TA的精华主题

TA的得分主题

 楼主| 发表于 2020-5-18 03:19 | 显示全部楼层
《通讯录管理系统》之 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工程加一个密码,以保护我们的后台代码,因为所有的安全设置都是由代码在执行,代码被破坏了,这些安全措施也就没有意义了。

TA的精华主题

TA的得分主题

 楼主| 发表于 2020-5-18 03:22 | 显示全部楼层
本帖最后由 岁月无恒 于 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

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


TA的精华主题

TA的得分主题

 楼主| 发表于 2020-5-18 03:24 | 显示全部楼层
《通讯录管理系统》之 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

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






TA的精华主题

TA的得分主题

 楼主| 发表于 2020-5-18 03:25 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
《通讯录管理系统》之 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



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



评分

1

查看全部评分

TA的精华主题

TA的得分主题

发表于 2020-5-18 08:20 | 显示全部楼层

TA的精华主题

TA的得分主题

 楼主| 发表于 2020-5-18 09:07 来自手机 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2020-5-18 12:22 | 显示全部楼层

TA的精华主题

TA的得分主题

 楼主| 发表于 2020-5-18 13:05 来自手机 | 显示全部楼层
wowo000 发表于 2020-5-18 12:22
拜读大作,岁月无恒老师,高!!强大!!!

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

TA的精华主题

TA的得分主题

 楼主| 发表于 2020-5-18 13:05 来自手机 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
qqyyh 发表于 2020-5-18 08:20
好牛呀,膜拜!

欢迎使用,感谢你的支持
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-12-25 02:47 , Processed in 0.074053 second(s), 11 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

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