我自家產(chǎn)的蜂蜜,純天然飲品(100%純蜂蜜,如有假陪十萬),希望各位朋友捧捧場(chǎng)啦?。?!60元包郵(1000G),呵呵,另外還送一份VBA教學(xué)視頻(VBA從基礎(chǔ)到提高),有需要的聯(lián)系我,謝謝了?。?/span> 以前沒有接觸vba的時(shí)候每次用QQ登錄的時(shí)候我都會(huì)想,要是我也能制作出一個(gè)系統(tǒng)然后用用戶名和密碼來登錄就好了,后來學(xué)會(huì)vba了,發(fā)現(xiàn),原來做一個(gè)登錄窗體不是那么匪夷所思的,當(dāng)然vba也不是萬能的,它只能用作登錄你的Excel表格,廢話不多說,步入正題,走起! 第一步,我們首先要建立一張表,表第一列是用戶名,第二列是用戶密碼,第三列是用戶權(quán)限,然后在VBE界面畫出一個(gè)窗體,控件按照上圖自己擺放 還有就是要打開VBE新建一個(gè)模塊,然后使用public定義個(gè)string型變量,用來保存用戶權(quán)限。 public qx as string 'qx這里是權(quán)限的意思 還有就是我們要在文件打開的時(shí)候就顯示登錄窗口,而不顯示程序怎么辦呢,所以要雙擊ThisWorkBook輸入代碼: Private Sub Workbook_Open() Application.Visible = False dl.Show End Sub 就是在文件打開時(shí)候主程序不顯示,只顯示我們的登錄窗口'dl'(登錄窗口定義的名稱為dl) 下面是窗口各個(gè)控件的名字和屬性 然后就是編寫代碼了,雙擊登錄窗口的登錄按鈕, Private Sub CommandButton1_Click()
End Sub 代碼就這些,然后開始一行一行的講解 第一句到第四句,判斷用戶名和密碼框是不是為空,如果為空則推出程序,Exit sub為退出程序的意思。 第五句到第七句為定義兩個(gè)字符型變量,分別接受用戶名框的內(nèi)容和密碼框的內(nèi)容。 第八句為定義一個(gè)變量(實(shí)際為Range型,也就是一個(gè)單元格),第九句設(shè)定這個(gè)單元格為Sheets('用戶')的第一列里面查找用戶名的內(nèi)容,具體Find的方法,大家可以F1! 第十句判斷找到?jīng)]有包含用戶名的單元格,Is Nothing是沒有的意思,但是Not * Is Nothing即不為空了! 第十一句說的是如果找到了包含用戶名的單元格則在判斷密碼是不是和用戶名相符,Cells(ran.Row, ran.Column + 1)這句的意思是用戶名所在的行,用戶名所在的列加1的單元格的內(nèi)容! 第十二句,如果密碼也相符的話呢就把Cells(ran.Row, ran.Column + 2)的內(nèi)容(就是第三列的內(nèi)容)賦值給我們的公共變量qx,這里簡(jiǎn)單說一下公共變量,公共變量就是只要在這個(gè)工作簿里面的程序都能使用,不像我們平時(shí)Dim的變量一樣,它要用Public去定義,而且必須在模塊里面才行! 第十三句開始,判斷公共變量qx的值,我們?cè)诒砀窭锩鏅?quán)限一列的值有1-3,這里就分別按不同值執(zhí)行不同代碼,這點(diǎn)也是按照粉絲“劉瀟凱”的意思寫的,就是說如果權(quán)限是1,則第一張表顯示,其他的表隱藏,以此類推......最后讓主程序顯示,登錄窗口關(guān)閉。 注意下面的兩個(gè)Else,一個(gè)是對(duì)密碼的,另一個(gè)是當(dāng)沒有找到包含用戶名的單元格時(shí)候的才執(zhí)行的。 好了,能自動(dòng)根據(jù)用戶顯示不同頁面的登錄窗口做好了,趕快動(dòng)手也做一個(gè)吧,當(dāng)然,你的登錄窗口可以做的更漂亮些! |
|