午夜视频在线网站,日韩视频精品在线,中文字幕精品一区二区三区在线,在线播放精品,1024你懂我懂的旧版人,欧美日韩一级黄色片,一区二区三区在线观看视频

分享

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

 寒塘孤鶴 2015-07-15

當(dāng)我們在處理或傳輸Excel電子表格的時候,如果涉及到比較重要的數(shù)據(jù),都會考慮到文檔的安全問題。

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

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

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

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

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

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

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

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

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

  二、建立用戶窗體

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

  右鍵點擊 UserLoginInfor  選擇“查看代碼”,如下圖。

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

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

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

  接下來,我們該給窗體控件增加VBA代碼,以實現(xiàn)真正的登陸機制了。

  三、登陸機制中所使用的VBA代碼

  ThisWorkbook對象的代碼

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

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

  ②窗體控件的VBA代碼

  窗體的控件的VBA代碼,包括三類代碼。一是登陸按鈕的代碼;二是退出按鈕的代碼;三是點擊×關(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 "錯誤的用戶名和密碼", vbCritical, "系統(tǒng)消息"
  End If

  B、退出按鈕的VBA代碼

  Application.Quit

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

  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工作表

  為什么要顯示和隱藏這個工作表呢?因為不同的人登陸EXCEL電子表格,權(quán)限是不一樣的,如果每個人登陸都能看到別人的用戶名和密碼,那人人都可以拿最高權(quán)限的登陸了,然后什么都可以做了。

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

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

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

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多