資源描述:
《EXCEL VBA 登錄界面程序源代碼》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在學(xué)術(shù)論文-天天文庫(kù)。
1、在工作中可能遇到這種情況,就是有一個(gè)錄入工作需要多人協(xié)同完成,每個(gè)人所要錄入的部份又不相同,于是就在同一個(gè)EXCEL工作簿中建立多個(gè)工作表,當(dāng)某一個(gè)人錄入時(shí),只打開他需要操作的那個(gè)工作表,其他工作表自動(dòng)隱藏起來(lái),防止被誤操作。我看到網(wǎng)上有不少朋友在找有這個(gè)功能的表格,于是就試著做了一個(gè),跟大家分享一下。注意:由于EXCEL的VBA安全性非常低,網(wǎng)上有很多破解的方法,所以對(duì)那些數(shù)據(jù)安全性要求較高的請(qǐng)不要用這種方法。一、表格部份這個(gè)工作簿中有多個(gè)工作表,分成三類。第一類:工作簿的第一個(gè)工作表,里面沒有數(shù)據(jù),只用于顯示登錄窗口,起名為“登錄”。由于
2、在VBA代碼中要調(diào)用這個(gè)工作表,在實(shí)際使用時(shí),這個(gè)名字不要改動(dòng)。第二類:工作簿的第二個(gè)工作表,里面存儲(chǔ)了各登錄人員的姓名、登錄密碼以及各人要操作的工作表(權(quán)限),起名為“設(shè)置”,這個(gè)工作表的名字同樣不要修改,里面的數(shù)據(jù)位置也不要改動(dòng)。第三類:工作簿的第三及以后的工作表,這些表都是登錄人員要操作的表格,應(yīng)根據(jù)自己的需要設(shè)置,我為了介紹方便,給他們起名為“表一”、“表二”、...,可以添加多個(gè),表的名字也可任意。在做上面這些表時(shí),只要注意“登錄”表的名字不要改、“設(shè)置”表的名字與數(shù)據(jù)位置不要改,其他部份可隨意。提示:如果非要改變“登錄”表與“設(shè)置
3、”表的名字,必須在EXCEL中改名后,把VBA代碼中相關(guān)的名字也改過(guò)來(lái)才能正常使用。二、VBA部份上面表格部份完成后,就需要做VBA代碼了,在EXCEL窗口按ALT+F11調(diào)出VBA窗口。1、登錄窗體在工具欄中按“插入-用戶窗體”,添加一個(gè)窗體。將插入的窗體調(diào)整到適當(dāng)大小。2、代碼在所添加的窗體上雙擊鼠標(biāo),然后把下面代碼粘貼進(jìn)去:PrivateSubCommandButton1_Click()OnErrorGoTo10'當(dāng)姓名與密碼不對(duì)應(yīng)時(shí),會(huì)出現(xiàn)錯(cuò)誤,轉(zhuǎn)到10語(yǔ)句處理DimnAsStringSetsh=Sheets("設(shè)置")na=Text
4、Box1.Text:ps=TextBox2.Text'取得登錄窗口中的姓名與密碼Ifna=""Orps=""ThenMsgBox"未輸入用戶名或密碼,不能登錄",,"提示":ExitSubs=WorksheetFunction.Match(na,sh.[a:a],0)'查找用戶在A列的位置n=sh.Cells(s,2)'取出“設(shè)置”表中的權(quán)限密碼,字符型Ifn<>psThenGoTo10Call隱藏表'檢查一下“設(shè)置”表的C列及右邊各格中的內(nèi)容,有內(nèi)容的,說(shuō)明可以打開內(nèi)容所指定的工作表Fori=4To255b=sh.Cells(s,i).Va
5、lueIfb=1Andsh.Cells(1,i)<>""Then'單元格為1時(shí),表示有權(quán)限打開這個(gè)表,就讓它顯示出來(lái)Sheets(sh.Cells(1,i).Value).Visible=-1EndIfNextUnloadUserForm1'退出窗體ExitSub10:MsgBox"姓名或密碼錯(cuò)誤,不能登錄",,"提示"EndSubSub隱藏表()TextBox1.Text="":TextBox2.Text=""Fori=1ToWorksheets.CountIfSheets(i).Name<>"登錄"ThenSheets(i).Visibl
6、e=2ElseSheets(i).Visible=-1'只讓“登錄”表顯示出來(lái)EndIfNextEndSubPrivateSubCommandButton2_Click()Call隱藏表EndSubPrivateSubUserForm_Activate()'窗體出現(xiàn)在屏幕上的位置Me.Top=220Me.Left=120EndSub代碼中都做了注釋,看不明白也不影響使用,只要粘貼上就行了。再用鼠標(biāo)雙擊左側(cè)的thisworkbook模塊,把下面代碼粘貼上去。PrivateSubWorkbook_BeforeClose(CancelAsBoole
7、an)CallUserForm1.隱藏表ActiveWorkbook.Save'保存當(dāng)前工作簿文檔EndSubPrivateSubWorkbook_Open()CallUserForm1.隱藏表UserForm1.Show'加載登錄窗體EndSub再用鼠標(biāo)雙擊左側(cè)“設(shè)置”表模塊,把下面代碼粘貼上去。PrivateSubWorksheet_Activate()'將各工作表的名字填入第一行中Fori=2ToWorksheets.CountCells(1,i+2)=Sheets(i).NameNextEndSub再用鼠標(biāo)雙擊左側(cè)“登錄”表模塊,把下
8、面代碼粘貼上去。最后給VBA加上一個(gè)保護(hù)密碼,防止其他人員改動(dòng)代碼。按“工具-VBAProject屬性”,調(diào)出“VBAProject”屬性窗口,選“保護(hù)”選項(xiàng)卡,按