小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

Excel登陸窗口的實(shí)現(xiàn)

 寒塘孤鶴 2015-07-15

當(dāng)我們?cè)谔幚砘騻鬏?SPAN lang=EN-US>Excel電子表格的時(shí)候,如果涉及到比較重要的數(shù)據(jù),都會(huì)考慮到文檔的安全問題。

  為此,我們可以使用單元格限制修改輸入、借用VBA加以限制用戶使用某種工具或菜單等。這一切,都是為了Excel電子表格的安全著想。

  本文,給大家介紹一種更為安全的方法,那就是,Excel登陸機(jī)制的實(shí)現(xiàn)。意思就是說,當(dāng)我們雙擊Excel電子表格企圖打開的時(shí)候,會(huì)提示登陸,如果登陸成功,就能夠打開電子表格進(jìn)行各種操作,如果登陸失敗,那么,將無法成功打開Excel電子文檔。

  我們先看下圖吧,最終的實(shí)現(xiàn)效果就是,當(dāng)我們雙擊Excel電子表格時(shí),會(huì)看到如下圖的登陸窗口。

  填寫正確的用戶名和密碼之后,才能登陸成功。如果登陸成功,就可以對(duì)電子表格進(jìn)行日常的操作。否則,就只能點(diǎn)擊退出或關(guān)閉,從而就不能打開Excel電子表格了。

  要想實(shí)現(xiàn)這樣的功能,有一定難度,但是,并非不可以實(shí)現(xiàn),借助工作表并配合簡(jiǎn)單的VBA代碼和用戶窗體就可以實(shí)現(xiàn)。

  一、保存用戶名和密碼的工作表

  要想實(shí)現(xiàn)登陸,那么,必須要有依據(jù),這個(gè)依據(jù)就是,我們將用戶名和密碼事先保存在EXCLE工作薄的某一個(gè)工作表中,登陸的時(shí)候,只需要判斷表格中是否有此用戶名和密碼即可。有則登陸成功,沒有則登陸失敗。

  表格如上圖中的表,只要工作薄中的任意一個(gè)工作表,用來用戶名和密碼即可。如本例的工作表,名稱為 UserLoginInfor  ,此表中有三列,第一列是保存登陸名稱,第二列保存對(duì)應(yīng)的登陸密碼,第三列保存用戶的級(jí)別。

  根據(jù)上圖的表,自己建立一個(gè)這樣的工作表吧,接下來,就是用戶窗體和VBA的事了。

  二、建立用戶窗體

  所謂的用戶窗體,就是我們所看到的第一圖的登陸窗口,那個(gè)就是用戶窗體,在Excel中,我們必須插入這樣的一個(gè)窗體。方法如下。

  右鍵點(diǎn)擊 UserLoginInfor  選擇“查看代碼”,如下圖。

  然后,我們會(huì)看到所彈出的VBA窗口,在此窗口中,執(zhí)行菜單操作“插入”→“用戶窗體”,如下圖。

  之后,我們就會(huì)看到如下圖的界面了。

  上圖中,我們通過工具箱向窗體中插入兩個(gè)標(biāo)簽控件、兩個(gè)輸入框和兩個(gè)按鈕。兩個(gè)標(biāo)簽控件的Captiont屬性分別為“用戶名”和“密碼”,兩個(gè)輸入框則只調(diào)整大小即可。兩個(gè)按鈕的Caption分別設(shè)置為“登陸”和“退出”,如此如此,所有的前期準(zhǔn)備工作到此完成。

  接下來,我們?cè)摻o窗體控件增加VBA代碼,以實(shí)現(xiàn)真正的登陸機(jī)制了。

  三、登陸機(jī)制中所使用的VBA代碼

  ThisWorkbook對(duì)象的代碼

  右鍵點(diǎn)擊窗口中能夠看見的ThisWorkbook,選擇“查看代碼”,這樣,VBA代碼輸入小窗口就出現(xiàn)了。

  接下來,如上圖一樣,選擇好對(duì)象名稱是Workbook,事件名稱是Open,然后,如上圖一樣,輸入VBA代碼即可。

  ②窗體控件的VBA代碼

  窗體的控件的VBA代碼,包括三類代碼。一是登陸按鈕的代碼;二是退出按鈕的代碼;三是點(diǎn)擊×關(guān)閉的代碼。

  為方便大家的學(xué)習(xí),下面將這三類代碼粘貼如下:

  A、登陸按鈕的代碼

  Dim MyLoginStatus As Single
  MyLoginStatus = 0
  For i = 2 To ThisWorkbook.Sheets("UserLoginInfor").UsedRange.Rows.Count
      If (Trim(ThisWorkbook.Sheets("UserLoginInfor").Cells(i, 1).Value)) = Trim(TextBox1.Value) And (Trim(ThisWorkbook.Sheets("UserLoginInfor").Cells(i, 2).Value)) = Trim(TextBox2.Value) Then
          MyLoginStatus = MyLoginStatus + 1
          If (Trim(ThisWorkbook.Sheets("UserLoginInfor").Cells(i, 3).Value) = "最高權(quán)限") Then
              ThisWorkbook.Sheets("UserLoginInfor").Visible = True
          Else
              ThisWorkbook.Sheets("UserLoginInfor").Visible = False
          End If
      End If
  Next i
  If (MyLoginStatus >= 1) Then
      MsgBox "登陸成功", vbInformation, "系統(tǒng)消息"
      UserForm1.Hide
      Application.Visible = True
  Else
   
   MsgBox "錯(cuò)誤的用戶名和密碼", vbCritical, "系統(tǒng)消息"
  End If

  B、退出按鈕的VBA代碼

  Application.Quit

  注意,以上兩類代碼的輸入方法,直接點(diǎn)擊“登陸”和“退出”按鈕就可以進(jìn)入輸入模式,按照上面的代碼,原原本本的照著輸入就可以了。

  C、×關(guān)閉的VBA代碼

  此類代碼比較難以理解,下面直接將其事件及代碼完整粘貼如下:

  Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
    Application.Quit
  End Sub

  四、部分代碼說明

  ThisWorkbook.Sheets("UserLoginInfor").Visible = True;顯示UserLoginInfor工作表

  ThisWorkbook.Sheets("UserLoginInfor").Visible = False;隱藏UserLoginInfor工作表

  為什么要顯示和隱藏這個(gè)工作表呢?因?yàn)椴煌娜说顷?SPAN lang=EN-US>EXCEL電子表格,權(quán)限是不一樣的,如果每個(gè)人登陸都能看到別人的用戶名和密碼,那人人都可以拿最高權(quán)限的登陸了,然后什么都可以做了。

  我們的登陸機(jī)制是,只有最高權(quán)限的人登陸成功,才能看到UserLoginInfor工作表并修改這個(gè)工作表。而其它人即便登陸成功,這個(gè)表也不能看到,更不能修改了。

  UserForm1.Hide;如果登陸成功,就把登陸窗體隱藏起來,這樣,才不會(huì)影響EXCEL工作表的操作。

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多