用VBA制做EXCEL登录系统
展开全文
用VBA制做EXCEL登录系统<div class="audio-wp audio-wp-1 playing" data-text="用VBA制做EXCEL登录系统在工作中可能遇到这种情况,就是有一个录入工作需要多人协同完成,每个人所要录入的部份又不相同,于是就在同一个EXCEL工作簿中建立多个工作表,当某一个人录入时,只打开他需要操作的那个工作表,其他工作表自动隐藏起来,防止被误操作。
我看到网上有不少朋友在有这个功能的表格,于是就试着做了一个,跟大家分享一下。
注意:由于EXCEL的VBA安全性非常低,网上有很多破解的方法,所以对那些数据安全性要求较高的请不要用这种方法。
一、表格部份
这个工作簿中有多个工作表,分成三类。
第一类:工作簿的第一个工作表,里面没有数据,只用于显示登录窗口,起名为“登录”。由
于在VBA代码中要调用这个工作表,在实际使用时,这个名字不要改动。
第二类:工作簿的第二个工作表,里面存储了各登录人员的姓名、登录密码以及各人要操作的工作表(权限),起名为“设置”,这个工作表的名字同样不要修改,里面的数据位置也不要改动。
第三类:工作簿的第三及以后的工作表,这些表都是登录人员要操作的表格,应根据自己的需要设置,我为了介绍方便,给他们起名为“表一”、“表二”、...,可以添加多个,表的名字也可任意。
在做上面这些表时,只要注意“登录”表的名字不要改、“设置”表的名字与数据位置不要改,其他部份可随意。
提示:如果非要改变“登录”表与“设置”表的名字,必须在EXCEL中改名后,把VBA代码中相关的名字也改过来才能正常使用。
vba做excel窗体录入教程二、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
Sheets(i).Visible = 2
Else
Sheets(i).Visible = -1 '只让“登录”表显示出来
End If
Next

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。