Dzwebs.Net

撰写电脑技术杂文十余年

Excel登陆机制的实现方法

Admin | 2010-9-29 9:01:25 | 被阅次数 | 14450

温馨提示!

如果未能解决您的问题,请点击搜索;登陆可复制文章,点击登陆

  当我们在处理或传输Excel电子表格的时候,如果涉及到比较重要的数据,都会考虑到文档的安全问题。

  为此,我们可以使用单元格限制修改输入、借用VBA加以限制用户使用某种工具或菜单等。这一切,都是为了Excel电子表格的安全着想。

  本文,给大家介绍一种更为安全的方法,那就是,Excel登陆机制的实现。意思就是说,当我们双击Excel电子表格企图打开的时候,会提示登陆,如果登陆成功,就能够打开电子表格进行各种操作,如果登陆失败,那么,将无法成功打开Excel电子文档。

  我们先看下图吧,最终的实现效果就是,当我们双击Excel电子表格时,会看到如下图的登陆窗口。

  填写正确的用户名和密码之后,才能登陆成功。如果登陆成功,就可以对电子表格进行日常的操作。否则,就只能点击退出或关闭,从而就不能打开Excel电子表格了。

  要想实现这样的功能,有一定难度,但是,并非不可以实现,借助工作表并配合简单的VBA代码和用户窗体就可以实现。

  一、保存用户名和密码的工作表

  要想实现登陆,那么,必须要有依据,这个依据就是,我们将用户名和密码事先保存在EXCLE工作薄的某一个工作表中,登陆的时候,只需要判断表格中是否有此用户名和密码即可。有则登陆成功,没有则登陆失败。

  表格如上图中的表,只要工作薄中的任意一个工作表,用来用户名和密码即可。如本例的工作表,名称为 UserLoginInfor  ,此表中有三列,第一列是保存登陆名称,第二列保存对应的登陆密码,第三列保存用户的级别。

  根据上图的表,自己建立一个这样的工作表吧,接下来,就是用户窗体和VBA的事了。

  二、建立用户窗体

  所谓的用户窗体,就是我们所看到的第一图的登陆窗口,那个就是用户窗体,在Excel中,我们必须插入这样的一个窗体。方法如下。

  右键点击 UserLoginInfor  选择“查看代码”,如下图。

  然后,我们会看到所弹出的VBA窗口,在此窗口中,执行菜单操作“插入”→“用户窗体”,如下图。

  之后,我们就会看到如下图的界面了。

  上图中,我们通过工具箱向窗体中插入两个标签控件、两个输入框和两个按钮。两个标签控件的Captiont属性分别为“用户名”和“密码”,两个输入框则只调整大小即可。两个按钮的Caption分别设置为“登陆”和“退出”,如此如此,所有的前期准备工作到此完成。

  接下来,我们该给窗体控件增加VBA代码,以实现真正的登陆机制了。

  三、登陆机制中所使用的VBA代码

  ①ThisWorkbook对象的代码

  右键点击窗口中能够看见的ThisWorkbook,选择“查看代码”,这样,VBA代码输入小窗口就出现了。

  接下来,如上图一样,选择好对象名称是Workbook,事件名称是Open,然后,如上图一样,输入VBA代码即可。

  ②窗体控件的VBA代码

  窗体的控件的VBA代码,包括三类代码。一是登陆按钮的代码;二是退出按钮的代码;三是点击×关闭的代码。

  为方便大家的学习,下面将这三类代码粘贴如下:

  A、登陆按钮的代码

  Dim MyLoginStatus As Single
  MyLoginStatus = 0
  For i = 2 To ThisWorkbook.Sheets("UserLoginInfor").UsedRange.Rows.Count
      If (Trim(ThisWorkbook.Sheets("UserLoginInfor").Cells(i, 1).Value)) = Trim(TextBox1.Value) And (Trim(ThisWorkbook.Sheets("UserLoginInfor").Cells(i, 2).Value)) = Trim(TextBox2.Value) Then
          MyLoginStatus = MyLoginStatus + 1
          If (Trim(ThisWorkbook.Sheets("UserLoginInfor").Cells(i, 3).Value) = "最高权限") Then
              ThisWorkbook.Sheets("UserLoginInfor").Visible = True
          Else
              ThisWorkbook.Sheets("UserLoginInfor").Visible = False
          End If
      End If
  Next i
  If (MyLoginStatus >= 1) Then
      MsgBox "登陆成功", vbInformation, "系统消息"
      UserForm1.Hide
      Application.Visible = True
  Else
      MsgBox "错误的用户名和密码", vbCritical, "系统消息"
  End If

  B、退出按钮的VBA代码

  Application.Quit

  注意,以上两类代码的输入方法,直接点击“登陆”和“退出”按钮就可以进入输入模式,按照上面的代码,原原本本的照着输入就可以了。

  C、×关闭的VBA代码

  此类代码比较难以理解,下面直接将其事件及代码完整粘贴如下:

  Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
    Application.Quit
  End Sub

  四、部分代码说明

  ThisWorkbook.Sheets("UserLoginInfor").Visible = True;显示UserLoginInfor工作表

  ThisWorkbook.Sheets("UserLoginInfor").Visible = False;隐藏UserLoginInfor工作表

  为什么要显示和隐藏这个工作表呢?因为不同的人登陆EXCEL电子表格,权限是不一样的,如果每个人登陆都能看到别人的用户名和密码,那人人都可以拿最高权限的登陆了,然后什么都可以做了。

  我们的登陆机制是,只有最高权限的人登陆成功,才能看到UserLoginInfor工作表并修改这个工作表。而其它人即便登陆成功,这个表也不能看到,更不能修改了。

  UserForm1.Hide;如果登陆成功,就把登陆窗体隐藏起来,这样,才不会影响EXCEL工作表的操作。


该杂文来自: Excel杂文

上一篇:EXCEL字符间距的设置方法

下一篇:透彻分析SUM函数

网站备案号:

网站备案号:滇ICP备11001339号-7

版权属性:

Copyright 2007-2021-forever Inc. all Rights Reserved.

联系方式:

Email:dzwebs@126.com QQ:83539231 访问统计