• 
    

    
    

      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
      作文語句實錄
      延寿县| 通辽市| 漳浦县| 贵港市| 石家庄市| 桐庐县| 明光市| 喜德县| 开江县| 巧家县| 子长县| 攀枝花市| 平昌县| 平江县| 沈丘县| 连山| 新邵县| 平陆县| 吉木萨尔县| 鄂州市| 翁牛特旗| 山西省| 梓潼县| 庐江县| 香港| 泰宁县| 玉田县| 长沙市| 阳原县| 鹿邑县| 土默特右旗| 杂多县| 梁山县| 平安县| 辽源市| 华蓥市| 鲁甸县| 安阳县| 榆中县| 西乌珠穆沁旗| 长沙市|