• <tr id="yyy80"></tr>
  • <sup id="yyy80"></sup>
  • <tfoot id="yyy80"><noscript id="yyy80"></noscript></tfoot>
  • 99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

    Excel安全使用的實現(xiàn)與分析

    2010-09-01 00:16:54姜彥偉
    關(guān)鍵詞:單元格菜單語句

    姜彥偉

    (常州工學(xué)院 計算機(jī)信息工程學(xué)院,江蘇 常州 213002)

    Excel安全使用的實現(xiàn)與分析

    姜彥偉

    (常州工學(xué)院 計算機(jī)信息工程學(xué)院,江蘇 常州 213002)

    Exdel的使用已相當(dāng)?shù)钠毡?,由于其具有易操作、易修改等特點,所以其數(shù)據(jù)很容易被修改或丟失.本文就是針對不同用戶的需要,利用VBA技術(shù)實現(xiàn)與分析Excel的安全使用.

    VBA;對象;屬性;方法

    1 引言

    在處理日常的一些表格數(shù)據(jù)時,Exdel可能是使用最多的,范圍最廣的.比如學(xué)生成績表、工資表等一些重要表格,對制表人來講就不希望他人在某種場合下有意或無意的修改或刪除.的確,Excel也提供了對表格的保護(hù)功能,但其所提供的功能過于單調(diào)或死板,比如鎖定單元格,他是將整張表的所有單元格全部鎖定,而不能按用戶要求鎖定部分單元格.所以說Exdel的保護(hù)功能缺乏靈活性.

    對Exdel實現(xiàn)編程,利用VBA工具可能性是最有效的,也是最簡單的了.VBA也是一個面向?qū)ο蟮某绦蛟O(shè)計,Exdel對象模型包含有Rang對象、Worksheet對象、Workbook對象、Application對象、Window對象和Chart對象.

    Rang對象代表工作表的單元格或單元格區(qū)域,對Exdel中的單元格或單元格區(qū)域進(jìn)行操作都需要將其設(shè)置為一個Rang對象.然后使用Rang對象的屬性和方法以完成對單元格或單元格區(qū)域的操作.對單元格區(qū)域的引用可可將引用包含在引號中,也可采用如下方式引用單元格:

    ● [C2]:引用單元格“C2”;

    ● ActiveCell:引用當(dāng)前單元格.

    Worksheet對象是表示Exdel工作簿中的工作表,Worksheet對象是Worksheets集合的成員.在VBA中,不僅通過對Worksheets集合對象可向工作簿中增加、刪除工作表,而且通過對Worksheet對象的事件可控制工作表的行為,從而達(dá)到安全使用工作表的目的.

    與聲明普通的變量一樣可使用Dim聲明對象對象類型的變量,但要求所聲明的變量必須是Variant、Object或Range類型.與普通變量不同的是,必須Set語句賦值一個對象給對象變量.

    2 分析與實現(xiàn)

    2.1 單元格的選擇

    就整個工作表而言,有時對某些用戶只要求他只能對某些單元格或單元格區(qū)域進(jìn)行操作,而對該區(qū)域之外的區(qū)域禁止他選定,因此他也就不能夠?qū)@些區(qū)域進(jìn)行操作,從而達(dá)到這些不可選定區(qū)域數(shù)據(jù)的安全性.

    為實現(xiàn)上述目標(biāo),只要利用Worksheet對象的ScrollArea屬性,只要在相應(yīng)的過程中添加如下代碼即可.

    對于不連續(xù)的單元格區(qū)域上面的方法就受到限制,這時可由下面的方法實現(xiàn).

    當(dāng)用戶選取不同單元格時,可產(chǎn)生Selection-Change事件,該事件的語句格式是:

    其中參數(shù)Target即為選擇區(qū)域,用語句

    可得到選定單元格的坐標(biāo),然后可用條件語句判別此單元格是否為允許選定的單元格,若不是,則可用Rang的Select方法強(qiáng)制選定允許選定的單元格.

    2.2 工作表的刪除

    在一個電子簿中可能含有多張工作表,為防止他人有意或無意的刪除其中的工作表,可對工作表設(shè)置刪除密碼,注意這里是對工作表而不是整個電子文檔文件.

    這一技術(shù)的實現(xiàn)并不難.因為,刪除一個工作表是利用了Worksheet對象的Delete方法,只要在刪除前有一段密碼判別語句即可.具體的刪除語句可由下面語句實現(xiàn):

    Application.displayAlerts=False ‘刪除工作表警告提示取消

    2.3 根據(jù)密碼打開工作簿

    設(shè)置密碼可能是對工作簿最安全的做法.做為使用者來講,當(dāng)然是希望在打開工作簿時先驗證密碼的正確與否?對非法用戶當(dāng)然禁止打開該工作簿.

    其方法是在VBE的環(huán)境下添加一個窗口,此窗口即為登錄窗口,假設(shè)名稱為FrmPass,然后在工作簿的打開事件下打開此窗口,即編寫如下程序段:

    關(guān)于登錄窗口設(shè)計屬于常規(guī)設(shè)計,此不在贅述.

    上面的方法是設(shè)計應(yīng)用程序常規(guī)的登錄方法,其實,完全可以利用VBA中提供的工作簿的密碼設(shè)置功能,其方法是利用Workbook對象的Pass-Word屬性即可很方便的進(jìn)行設(shè)置,具體方法如下:

    要取消密碼只要將上面代碼中的密碼設(shè)為空即可.

    2.4 工作表的隱藏

    有時在一個工作簿被打開的前提下,在某種特定的條件下,不希望某些表中的數(shù)據(jù)被他人看到,這時當(dāng)然可將這些通過某些組合鍵將表隱藏起來,這只要在鍵盤被按下的事件中編寫相應(yīng)的代碼即可.主要代碼如下:

    其中的常量如下:

    ● XlSheetHidden:隱藏工作表,用戶可通過菜單取消隱藏.

    ● XlSheetVeryHidden:隱藏工作表,用戶不能通過菜單取消隱藏,只能通過VBA代碼取消隱藏.

    ● XlsheetVisual:顯示工作表

    2.5 限制保存工作簿

    有時為限制他人惡意打開工作表并修改表格中的數(shù)據(jù),也可通過禁止對其修改過的工作簿進(jìn)行保存的辦法達(dá)到對數(shù)據(jù)的安全保護(hù).

    要達(dá)到此目的,只要注意當(dāng)工作表保存前引發(fā)Workbook對象的BeforeSave事件,其事件過程的結(jié)構(gòu)為:

    在這個過程中有兩個參數(shù)SaveAsUI與Cancel其含義如下:

    ● SaveAsUI:如果要顯示“另存為”對話框,則將其設(shè)為True

    ● Cancel:如果在上面的過程中將此參數(shù)設(shè)為True,則意為在過程完成后不保存工作簿.

    所以通過上面的兩個參數(shù)的不同設(shè)置即可禁止文件另存也可禁止保存修改,從而達(dá)到對表格進(jìn)行保護(hù)的目的.

    3 結(jié)束語

    如上只是對Excel的安全性做了部分介紹,雖然這些安全項目中有的可在Excel中的菜單中得以實現(xiàn),但有時我們?yōu)橛脩艟哂泻軓?qiáng)的個性化,往往其中的菜單也被取消,此時就只能利用VBA進(jìn)行一些功能的設(shè)計,所以說在進(jìn)行個性化的Excel設(shè)計中VBA編碼必不可少.

    〔1〕劉模群.Visual Basic程序?qū)嵱媒坛?電子工業(yè)出版社,2008.

    〔2〕伍高遠(yuǎn).ExcelVBA開發(fā)技術(shù)大全.清華大學(xué)出版社,2009.

    TP317.3

    A

    1673-260X(2010)05-0029-02

    猜你喜歡
    單元格菜單語句
    重點:語句銜接
    玩轉(zhuǎn)方格
    玩轉(zhuǎn)方格
    中國新年菜單
    淺談Excel中常見統(tǒng)計個數(shù)函數(shù)的用法
    西部皮革(2018年6期)2018-05-07 06:41:07
    精彩語句
    本月菜單
    美食堂(2017年1期)2017-01-13 01:37:42
    如何搞定語句銜接題
    語文知識(2014年4期)2014-02-28 21:59:52
    一個“公海龜”的求偶菜單
    鴨綠江(2013年10期)2013-03-11 19:41:55
    作文語句實錄
    海门市| 神农架林区| 沈阳市| 边坝县| 华池县| 彰化市| 道真| 溧水县| 连云港市| 克什克腾旗| 沙田区| 西安市| 香格里拉县| 同仁县| 新丰县| 富锦市| 四会市| 岱山县| 墨竹工卡县| 扎赉特旗| 札达县| 霍山县| 通州市| 都匀市| 东阳市| 出国| 三穗县| 盐山县| 霍邱县| 江都市| 门头沟区| 嘉定区| 铜陵市| 郓城县| 雷州市| 万州区| 寿宁县| 丹江口市| 库车县| 崇左市| 洛扎县|