用VBA制做EXCEL登录系统
- 格式:doc
- 大小:734.50 KB
- 文档页数:9
Excel高级技巧使用VBA宏和用户界面实现自定义功能操作报表生成数据处理自动化流程和数据驱动决策Excel是一款功能强大的电子表格软件,广泛应用于数据管理、报表生成和决策分析等领域。
在Excel中,VBA宏和用户界面是提高工作效率和实现自定义功能的重要工具。
本文将介绍一些Excel高级技巧,帮助读者掌握VBA宏和用户界面的应用,实现报表生成、数据处理自动化流程和数据驱动决策的目标。
一、VBA宏的基本概念和使用VBA(Visual Basic for Applications)是一种编程语言,可以创建、编辑和执行宏(Macro)以实现在Excel中自动化执行一系列操作的功能。
通过VBA宏,我们可以在Excel中编写程序来处理数据、生成报表、进行数据分析等。
1. 创建VBA宏要使用VBA宏,首先需要打开Excel软件,在“开发工具”选项卡中找到“Visual Basic”按钮,点击进入VBA编辑器界面。
然后,在VBA编辑器中选择“插入”->“模块”,即可创建一个新的VBA宏。
2. 编写VBA代码在创建了宏之后,就可以开始编写VBA代码。
VBA代码由一系列的语句和命令组成,用于完成特定的任务。
例如,我们可以编写一个VBA宏来计算某个列中数据的总和,并将结果填入到指定单元格中。
3. 执行VBA宏在编写完VBA代码后,可以通过多种方式来执行宏。
一种方式是在VBA编辑器中点击运行按钮,另一种方式是在Excel的“开发工具”选项卡中找到宏列表,选择要执行的宏并点击“运行”。
二、用户界面的设计和使用用户界面是与用户进行交互的窗口和控件。
在Excel中,我们可以使用用户界面来提供交互式的操作方式,增加程序的灵活性和易用性。
1. 用户界面的设计用户界面的设计主要包括界面布局的设计和控件的设计。
界面布局的设计涉及到窗口大小、位置和标题等;而控件的设计则包括按钮、文本框、下拉框等各种控件的设置和布局。
2. 控件的使用通过在用户界面中添加各种控件,可以为程序提供不同的功能和操作方式。
Excel VBA编程典型实例——设计工资管理系统安全密码在完成某个项目后,如果不希望其他人打开自己的程序,那么可以为Excel VBA程序添加安全保护。
安全保护可分为两种:一是保护文档,保护文档可使用Excel自带的文档加密功能,或者使用代码来控制文档的打开;二是保护程序源代码,在VBE 环境中,可通过保护工程来保护源代码不被查看,或者将代码封装到动态链接库(DDL)文件中。
下面将练习创建用户登录窗体,通过在窗体中输入安全密码来进入系统。
1.练习要点● 用户窗体● 使用控件● 保护工程● 代码2.操作步骤:(1)打开“员工工资录入.xlsm ”工作簿。
添加工作表Sheet4,并重命名为“登录”,然后设置工作表的样式,如图20-5所示。
图20-5 添加并设置工作表提 示选择工作表中所有单元格,在【开始】选择卡下,单击【字体】组中的“填充颜色”按钮,在【主题颜色】框中选择一种颜色(3)按Alt+F11进入VBE 窗口,然后添加新用户窗体UserForm2。
(4)在UserForm2中,添加一个“标签”控件、一个“文字框”控件和一个“按钮”控件。
然后,设置控件的属性,如图20-6所示。
图20-6 添加并设置控件提 示 设置UserForm2的Caption 属性的值为“密码保护”;设置Label1的Caption 属性的值为“请输入安全密码”;设置CommandButton1的的Caption 属性的值为“确定”;设置TextBox1的PasswordChar 属性的值为“*”(5)双击ThisWorkBook 对象,进入ThisWorkBook 对象的【代码】编辑窗口。
在左上角组合框中,选择WorkBook 对象,为其Open 事件添加代码,如图20-7所示。
单击 单击修改 选择选择图20-7 输入代码代码如下:Private Sub Workbook_Open()'最大化窗口Application.WindowState = xlMaximized'最大化当前工作表ActiveWindow.WindowState = xlMaximized'运行后隐藏工作表Sheet1.Visible = xlSheetHiddenSheet2.Visible = xlSheetHiddenSheet3.Visible = xlSheetHidden'显示用户登录UserForm2.Show 1End Sub(6)双击【确定】按钮,进入【代码】编辑窗体,并实现按钮的Click事件的代码,如图20-8所示。
Excel上使⽤VBA的WebBrowser控件实现单点登录(SSO)需求Excel 上可以做出很多漂亮的报表, 产品经理希望能够在Excel上弹出登录页⾯,实现单点登录,登录完成后,从服务器端取回模板列表,选择其中⼀个模板,插⼊到Excel中。
设计1. 登录界⾯可⽤前端技术实现,⽐如Angular与VUE2. VBA中⾃带的WebBrowser控件可以作为加载Web登录页⾯的“壳”。
3. VBA不断尝试获取页⾯上的cookie,直到取到cookie,并且cookie中包含token。
4. 使⽤URLDecode解码cookie,获取token。
5. 使⽤该token发出rest api请求获取模板列表。
部分实现从WebBrowser获取cookiePublic Function GetCookieFromBrowser(serverIP As String)Dim url As StringDim encodedCookie As StringencodedCookie = ""url = "https://" + serverIP + "/test/login/" + "?refresh=" + Guid()FLoginWeb.FWebBrowser.Silent = TrueFLoginWeb.FWebBrowser.Navigate urlFLoginWeb.Show vbModelessDo Until InStr(FLoginWeb.FWebBrowser.Document.cookie, "token") > 0: DoEvents: LoopIf FLoginWeb.FWebBrowser.Document.cookie <> "" ThenencodedCookie = FLoginWeb.FWebBrowser.Document.cookieFLoginWeb.HideEnd IfGetEncodedCookieFromWebBrowser = encodedCookieEnd Function注意1. 由于VBA的WebBrowser是IE内核,⽽微软官⽅已经宣布放弃⽀持IE,因此随着Angular、VUE等版本的升级,可能会出现WebBrowser⽆法正常加载⽹页的情况,需要多做测试。
VBA实现网页自动登录和信息采集的方法与技巧在当今互联网时代的背景下,自动化的信息采集变得越来越重要。
VBA(Visual Basic for Applications)作为一种宏语言,在Microsoft Office软件中被广泛应用。
通过VBA,我们可以实现网页自动登录和信息采集的功能,提高工作效率和数据准确性。
本文将介绍VBA实现网页自动登录和信息采集的方法与技巧,帮助读者更好地利用VBA进行自动化操作。
首先,实现网页自动登录需要了解HTML表单的工作原理。
在网页中,我们通常会遇到使用用户名和密码登录的表单。
VBA可以模拟用户输入,并提交表单,实现自动登录。
以下是实现网页自动登录的步骤:1. 新建VBA宏:在Microsoft Office软件中,如Excel 中按下ALT+F11快捷键,打开VBA编辑器。
在项目资源管理器中,选择对应的工作簿,右键点击插入模块,新建VBA宏。
2. 引用Microsoft Internet Controls库:在VBA编辑器中,点击工具-引用。
在出现的引用对话框中,勾选“M icrosoft Internet Controls”并点击确定。
3. 创建Internet Explorer对象:在VBA宏中,使用CreateObject函数创建Internet Explorer对象并设置其Visible属性为True,以便后续操作时能可视化显示页面。
4. 导航到登录页面:使用Navigate方法将IE对象导航到登录页面的URL地址。
5. 获取表单元素并填充:使用getElementsByName或getElementByID方法获取HTML表单元素,并使用Value属性设置其值,模拟用户输入用户名和密码。
6. 提交表单:使用getElementsByName或getElementByID方法获取登录按钮元素,并使用Click方法提交表单。
7. 等待页面加载完成:使用Do While循环等待页面加载完成,可以通过检测IE对象的ReadyState属性和Busy属性来判断页面是否已加载完毕。
ExcelVBA编程进阶自定义用户界面和高级功能Excel VBA编程进阶:自定义用户界面和高级功能一、简介Excel Visual Basic for Applications(VBA)是一种强大的编程语言,可用于自定义Excel的用户界面和添加高级功能。
通过VBA编程,用户可以自定义工作表、添加按钮和菜单,并实现复杂的自动化任务。
本文将介绍如何进一步深入学习VBA编程,重点关注自定义用户界面和添加高级功能。
二、自定义用户界面1. 使用用户窗体用户窗体是VBA中用于创建自定义用户界面的主要工具之一。
用户窗体提供了丰富的控件选项,如按钮、文本框和下拉列表框,以及事件处理程序用于响应用户操作。
通过用户窗体,用户可以创建与Excel内置功能完全不同的界面,从而实现更好的用户体验。
2. 自定义菜单和工具栏除了用户窗体,VBA还提供了自定义菜单和工具栏的功能。
通过自定义菜单和工具栏,用户可以方便地访问自定义函数和程序,提高工作效率。
可以使用VBA代码创建自定义菜单和工具栏,并将相应的功能与之关联。
三、高级功能的添加1. 数据处理与分析VBA可以使用户更轻松地进行数据处理与分析。
通过编写VBA宏,用户可以自动化完成繁琐的数据处理任务,例如数据清洗、排序和筛选。
同时,VBA还提供了强大的数学和统计函数,可用于高级数据分析和建模。
2. 与其他应用程序的集成VBA可以与其他Microsoft Office应用程序(如Word和PowerPoint)以及第三方应用程序进行集成。
通过VBA编程,用户可以在Excel中与其他应用程序交互,实现数据的导入和导出,以及自动化生成报告和演示文稿等功能。
3. 自动化报表生成通过VBA编程,用户可以实现自动化报表的生成。
用户可以编写VBA宏来自动获取数据、计算指标、创建图表和表格,并将结果导出为Excel报表。
这样可以大大提高工作效率,节省时间和精力。
四、总结通过本文的介绍,我们了解了如何进一步学习Excel VBA编程,重点关注自定义用户界面和添加高级功能。
Excel之VBA常用功能应用篇:实现简单的用户名密码登录验证功能日常办公中我们登录系统经常会输入用户名、密码,点击【登录】的时候系统会对我们输入的用户名、密码进行正确与否的验证。
今天就给大家分享下如何通过Excel VBA来实现简单的用户名、密码验证功能!1.实现用户名、密码验证的VBA代码如下Sub login()'定义需要的变量Dim users As Object, i As Integer, num As Integer, rws As Long, rg As Range, ustr As String, mstr As String'有户名密码表信息的行数赋值给变量rwsrws = Sheet1.Range("a" & Rows.Count).End(xlUp).Row'定义users定义为字典Set users = CreateObject("Scripting.Dictionary")'循环取用户名密码数据For i = 2 To rws'循环的A列单元格数据赋值给到rgSet rg = Sheet1.Range("a" & i)'给字典users赋值,a列单元格的值为key,对应b列单元格的值为valueusers(rg.Value) = rg.Offset(0, 1).ValueNext'循环判断输入用户名密码Do'将用户输入的用户名、密码分别赋值给到变量ustr、mstr ustr = Application.InputBox("用户名")'判断输入的用户名是否为空If ustr = "" Then'为空时提示,并让用户重新输入MsgBox "用户名不能为空!"ustr = Application.InputBox("用户名")End Ifmstr = Application.InputBox("密码")'判断输入的密码是否为空If mstr = "" Then'为空时提示,并让用户重新输入MsgBox "密码不能为空!"mstr = Application.InputBox("密码")End If'判断用户名、密码是否正确If users(ustr) = mstr Then'正确退出当前do循环Exit DoElse'错误提示MsgBox "请输入正确的用户名密码!"End If'循环次数加1num = num + 1Loop While num < 3 '循环条件为不超过3次'判断输入次数If num >= 3 Then'超过3次提示MsgBox "输入次数超出限制,系统自动退出" '退出Excel应用程序Application.QuitElse'用户名、密码正确提示MsgBox "欢迎进入系统"End IfEnd Sub2.插入按钮绑定宏login并命名为“登录”3.输入错误用户名或密码时的效果4.输入空用户名或密码时的效果5.输入错误超过3次时的效果Excel程序也会退出6.输入正确用户名和密码时的效果本次分享就到这里了,我们下次分享再见!。
Excel高级技巧使用VBA宏和用户界面实现自定义功能操作报表生成数据处理和自动化流程Excel是一款强大的数据处理和分析工具,但是在处理庞大数据量和复杂计算任务时,常规的功能往往无法满足需求。
为了提升工作效率,Excel提供了VBA宏和用户界面的高级技巧,可以实现自定义功能、操作报表生成、数据处理和自动化流程等任务。
一、VBA宏介绍VBA(Visual Basic for Applications)是一种内置于Excel中的编程语言,通过编写VBA宏,可以对Excel进行自定义编程,实现各种复杂的功能。
VBA宏可以实现复杂的逻辑判断、循环运算、条件筛选、自定义函数等操作,大大提升了Excel的灵活性和功能扩展性。
二、VBA宏的基本语法VBA宏的语法与Visual Basic类似,包括变量定义、条件语句、循环语句、函数定义等。
在VBA宏中,可以通过操作Excel对象模型来实现对Excel工作簿、工作表、单元格等的操作。
通过学习和掌握VBA宏的基本语法,我们可以灵活应用于实际工作中,实现自定义功能。
三、VBA宏实现报表生成在数据报表生成过程中,往往需要对原始数据进行加工、筛选和计算,然后将结果以报表的形式呈现。
使用VBA宏,我们可以根据具体需求,编写相应的代码,实现自动化的数据处理和报表生成。
通过添加按钮、下拉框等用户界面元素,我们可以进一步优化用户操作体验。
四、VBA宏实现数据处理Excel中的数据处理常常需要进行复杂的运算和多次筛选排序,使用常规功能难以胜任。
VBA宏提供了强大的功能,可以通过编写代码实现数据的自动处理。
例如,我们可以编写代码实现批量数据的导入、清洗、整理和计算,并将结果自动写入工作表中,大大缩短了数据处理的时间和精力。
五、用户界面的设计与优化对于VBA宏的使用,用户界面的设计和优化也至关重要。
通过添加按钮、下拉框、输入框等用户操作元素,可以使用户界面更加简洁和友好。
同时,通过合理的界面布局和操作流程,用户可以更加便捷地使用功能,提升工作效率。
1、打开显示登录窗体代码打开隐藏表格,显示登录窗体private Sub Workbook_open()Application.Visible = falseUserForm1.Showend Sub2、固定账号、密码登录窗体设置(1)制作窗体(2)登录验证Private Sub CommandButton1_Click() If TextBox1 = "admin" ThenIf TextBox2 <> 123 ThenMsgBox "密码错误"Exit SubElseMsgBox "登录成功”"Unload MeApplication.Visible = TrueSheet1.ActivateEnd IfElseMsgBox "账号不存在"End IfEnd Sub(3)退出按钮Private Sub CommandButton2_Click() Unload MeThisWorkbook.CloseEnd Sub(4)打开注册窗体Private Sub CommandButton3_Click() UserForm2.ShowEnd Sub(5)唯一关闭代码Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer) If CloseMode <> 1 Then Cancel = TrueEnd Sub3、注册账号(1)制作注册账号窗体(2)注册代码Private Sub CommandButton1_Click()Dim zh As Range, zt As RangeIf TextBox1 = "" Then MsgBox "未填入账户": Exit SubIf TextBox2 <> TextBox3 Then MsgBox "密码不一致": Exit SubSet zh = Sheets("注册").Range("a:a").Find(TextBox1.Text, , , 1)If zh Is Nothing ThenSet zt = Sheets("注册").Cells(Rows.Count, 1).End(xlUp).Offset(1, 0) zt = TextBox1.Textzt.Offset(0, 1) = TextBox2.Textzt.Offset(0, 2) = NowMsgBox "注册成功"Unload MeElseMsgBox "账号已经存在,请更换其他账号"End IfEnd Sub4、查找筛选代码Private Sub TextBox1_Change()If Len(TextBox1.Value) = 0 ThenSheet1.AutoFilterMode = FalseElseIf Sheet1.AutoFilterMode = True ThenSheet1.AutoFilterMode = FalseEnd IfSheet1.Range("B7:P" & Rows.Count).AutoFilter _field:=4, Criteria1:="*" & TextBox1.Value & "*"End IfEnd Sub5、多账号密码验证代码Private Sub CommandButton1_Click()If Len(TextBox1) = 0 Then MsgBox "未输入账号": Exit SubDim zh As RangeSet zh = Sheets("注册").Range("a:a").Find(TextBox1.Text, , , 1) If Not zh Is Nothing ThenIf TextBox2.Text <> zh.Offset(0, 1) ThenMsgBox "密码错误"Exit SubElseMsgBox "登录成功"Unload MeApplication.Visible = TrueSheet1.ActivateEnd IfElseMsgBox "账号不存在"End IfEnd Sub6、默认打开第一个工作表Private Sub Workbook_Open()Sheet1.ActivateEnd Sub7、退出保存工作表Private Sub Workbook_BeforeClose(Cancel As Boolean) ThisWorkbook.SaveEnd Sub。
用VBA制做ACCESS登录系统用VBA制作ACCESS登录系统介绍本文档将指导您使用VBA编程语言制作一个简单的ACCESS登录系统。
通过该系统,用户可以输入用户名和密码进行身份验证,并根据其角色访问不同的功能和数据。
步骤和说明下面是实现ACCESS登录系统的步骤和说明:步骤 1: 创建登录表格首先,打开ACCESS数据库并创建一个新的表格,用于存储用户的登录信息。
表格应包含以下字段:- 用户名(Username):作为主键,用于唯一标识每个用户。
- 密码(Password):用于验证用户身份。
步骤 2: 创建登录表单接下来,创建一个用户登录的表单,以便用户可以输入他们的用户名和密码。
在表单上添加以下控件:- 用户名文本框(TextBox):用于用户输入用户名。
- 密码文本框(TextBox):用于用户输入密码。
- 登录按钮(Button):用于触发登录过程。
步骤 3: 编写VBA代码在表单的VBA编辑器中,编写以下代码来实现登录系统的功能:Private Sub LoginButton_Click()Dim rs As DAO.RecordsetDim strSQL As String' 获取用户输入的用户名和密码Dim username As StringDim password As Stringusername = ernameTextBox.Valuepassword = Me.PasswordTextBox.Value' 构建查询语句,用于验证用户信息strSQL = "SELECT * FROM LoginTable WHERE Username='" & username & "' AND Password='" & password & "'"' 执行查询并判断结果Set rs = CurrentDb.OpenRecordset(strSQL)If Not rs.EOF Then' 登录成功,跳转到主界面DoCmd.OpenForm "MainForm"Else' 登录失败,显示错误消息MsgBox "用户名或密码错误,请重新输入。
ExcelVBA编程进阶自定义用户界面和交互式功能ExcelVBA编程进阶:自定义用户界面和交互式功能在Excel中使用VBA编程可以帮助我们更好地完成各种工作任务。
不仅可以进行数据处理、函数计算,还可以通过编写宏和用户界面,实现自定义的交互式功能。
本文将介绍如何进一步提升ExcelVBA编程技巧,实现自定义用户界面和交互式功能。
一、自定义用户界面要实现自定义用户界面,我们可以利用Excel的用户窗体功能。
用户窗体可以包含各种控件,如按钮、文本框、下拉列表等,以便用户进行输入和操作。
1.1 创建用户窗体在Excel中,打开开发工具选项卡,点击“插入”菜单下的“用户窗体”按钮,即可创建一个用户窗体。
然后,我们可以对用户窗体进行设计和布局。
通过拖拽和调整控件的位置和大小,可以实现界面的自定义。
1.2 添加控件在用户窗体上添加控件,可以通过选中“工具箱”中的控件图标,然后在用户窗体上拖拽绘制。
根据不同的需求,我们可以添加按钮、文本框、标签、下拉列表等控件。
1.3 设计控件属性在设计用户界面时,我们需要设置控件的属性,以满足具体的功能需求。
对于按钮控件,我们可以设置其名称、文本、大小和位置等属性。
对于文本框控件,我们可以设置其默认值、大小、位置和格式等属性。
二、交互式功能除了自定义用户界面,VBA编程还可以实现交互式功能,使用户能够直观地与Excel进行交互。
2.1 按钮点击事件我们可以在VBA代码中编写按钮的点击事件,实现一系列动作。
通过按钮点击事件,可以执行诸如计算、查找、排序等操作,增加程序的灵活性和可交互性。
2.2 文本框输入事件文本框是用户输入文字的控件。
我们可以编写文本框的输入事件,实现对用户输入的处理。
通过文本框输入事件,可以进行输入数据的验证、格式化等操作。
2.3 下拉列表选择事件下拉列表是一种常用的控件,用于提供用户选择的选项。
我们可以编写下拉列表的选择事件,根据用户选择的不同项,执行相应的操作。
用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
Sheets(i).Visible = 2
Else
Sheets(i).Visible = -1 '只让“登录”表显示出来
End If
Next
End Sub
Private Sub CommandButton2_Click()
Call 隐藏表
End Sub
Private Sub UserForm_Activate()
'窗体出现在屏幕上的位置
Me.Top = 220
Me.Left = 120
End Sub
代码中都做了注释,看不明白也不影响使用,只要粘贴上就行了。
再用鼠标双击左侧的thisworkbook模块,把下面代码粘贴上去。
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Call UserForm1.隐藏表
ActiveWorkbook.Save '保存当前工作簿文档
End Sub
Private Sub Workbook_Open()
Call UserForm1.隐藏表
UserForm1.Show '加载登录窗体
End Sub
再用鼠标双击左侧“设置”表模块,把下面代码粘贴上去。
Private Sub Worksheet_Activate()
'将各工作表的名字填入第一行中
For i = 2 To Worksheets.Count
Cells(1, i + 2) = Sheets(i).Name
Next
End Sub
再用鼠标双击左侧“登录”表模块,把下面代码粘贴上去。
最后给VBA加上一个保护密码,防止其他人员改动代码。
按“工具-VBA Project属性”,调出“VBA Project”属性窗口,选“保护”选项卡,按下图设置就行了。
至此就完成了整个制做过程,关闭VBA窗口回到EXCEL窗口,就可以在这个工作簿中添加你要操作的全部工作表了,注意添加的位置在“设置”工作表的右边。
使用时的注意事项:
1、在“登录”工作表中,登录窗体是自动显示的,只要输入姓名、密码正确,按“登录”按钮,就会根据“设置”表中的权限,自动打开该操作者所要操作的工作表,与他无关的表会自动隐藏。
2、当以管理员身份(本例中的“张三”)登录后,只要一打开“设置”工作表,就能自动在D1单元格及右边的各单元格中更新工作表名字。
3、任何操作者在操作完成后,要在“登录”窗体上点击“退出”按钮,以便关闭所操作的工作表。
4、为了保证登录功能正常运行,在打开工作簿时一定要启用宏。
另外,为了保证工作簿在关闭时只显示“登录”工作表,会自动将其他表隐藏并保存工作簿。
补充说明:
如果想在登录窗口的密码框不显示“明文”,只显示一串星号“***”,可以用下面方法设置。
打开VBA窗口,用鼠标选中登录窗体的密码文本框textbox2,在左边“属性”窗口中找到passwordChar属性,输入一个星号就行了。
补充2
有朋友提出,在显示登录窗口时,不想手工输入“姓名”,最好用下拉框选择“姓名”,想实现这个功能,只要把登录窗口中的姓名“文本框”删除,换成一个“复合框”,再改一下代码就可以了。
1、改文本框为复合框
2、修改代码
分两步,先把原代码中的所有“TextBox1.Text”替换成“ComboBox1.Text”(提示:可以在VBA窗口中按“编辑-替换”,输入内容后选“全部替换”即可)。
再将原代码中的下面这段:
Private Sub UserForm_Activate()
'窗体出现在屏幕上的位置
Me.Top = 220
Me.Left = 120
End Sub
替换成:
Private Sub UserForm_Activate()
'窗体出现在屏幕上的位置
Me.Top = 220
Me.Left = 120
For i = 2 To Sheets("设置").[a65536].End(xlUp).Row
ComboBox1.AddItem Sheets("设置").Cells(i, 1).Value
Next
End Sub
这样就可以使用了。