当前位置:文档之家› 用VBA制做EXCEL登录系统

用VBA制做EXCEL登录系统

用VBA制做EXCEL登录系统
用VBA制做EXCEL登录系统

用VBA制做EXCEL登录系统

|

在工作中可能遇到这种情况,就是有一个录入工作需要多人协同完成,每个人所要录

入的部份又不相同,于是就在同一个EXCEL工作簿中建立多个工作表,当某一个人录入时,只打开他需要操作的那个工作表,其他工作表自动隐藏起来,防止被误操作。

我看到网上有不少朋友在找有这个功能的表格,于是就试着做了一个,跟大家分享一下。

注意:由于EXCEL的VBA安全性非常低,网上有很多破解的方法,所以对那些数据安全性要求较高的请不要用这种方法。

一、表格部份

这个工作簿中有多个工作表,分成三类。

第一类:工作簿的第一个工作表,里面没有数据,只用于显示登录窗口,起名为“登录”。由于在VBA代码中要调用这个工作表,在实际使用时,这个名字不要改动。

第二类:工作簿的第二个工作表,里面存储了各登录人员的姓名、登录密码以及各人要操作的工作表(权限),起名为“设置”,这个工作表的名字同样不要修改,里面的数据位置也不要改动。

第三类:工作簿的第三及以后的工作表,这些表都是登录人员要操作的表格,应根据自己的需要设置,我为了介绍方便,给他们起名为“表一”、“表二”、...,可以添加多个,表的名字也可任意。

在做上面这些表时,只要注意“登录”表的名字不要改、“设置”表的名字与数据位置不要改,其他部份可随意。

提示:如果非要改变“登录”表与“设置”表的名字,必须在EXCEL中改名后,把VBA 代码中相关的名字也改过来才能正常使用。

二、VBA部份

上面表格部份完成后,就需要做VBA代码了,在EXCEL窗口按ALT+F11调出VBA窗口。

1、登录窗体

在工具栏中按“插入-用户窗体”,添加一个窗体。

将插入的窗体调整到适当大小。

2、代码

在所添加的窗体上双击鼠标,然后把下面代码粘贴进去:

Private Sub CommandButton1_Click()

On Error GoTo 10 '当姓名与密码不对应时,会出现错误,转到10语句处理

Dim n As String

Set sh = Sheets("设置")

na = TextBox1.Text: ps = TextBox2.Text '取得登录窗口中的姓名与密码

If na = "" Or ps = "" Then MsgBox "未输入用户名或密码,不能登录", , "提示": Exit Sub

s = WorksheetFunction.Match(na, sh.[a:a], 0) '查找用户在A列的位置

n = sh.Cells(s, 2) '取出“设置”表中的权限密码,字符型

If n <> ps Then GoTo 10

Call 隐藏表

'检查一下“设置”表的C列及右边各格中的内容,有内容的,说明可以打开内容所指定的工作表

For i = 4 To 255

b = sh.Cells(s, i).Value

If b = 1 And sh.Cells(1, i) <> "" Then '单元格为1时,表示有权限打开这个表,就让它显示出来

Sheets(sh.Cells(1, i).Value).Visible = -1

End If

Next

Unload UserForm1 '退出窗体

Exit Sub

10:

MsgBox "姓名或密码错误,不能登录", , "提示"

End Sub

Sub 隐藏表()

TextBox1.Text = "": TextBox2.Text = ""

For i = 1 To Worksheets.Count

If Sheets(i).Name <> "登录" Then

相关主题
文本预览
相关文档 最新文档