如何防止移動或複制Excel工作簿

立即分享:

通過禁用Excel中的各種菜單和右鍵單擊功能,可以最大程度地減少數據盜竊。 我們在下面討論如何使用VBA做到這一點。

假定讀者已顯示Excel Developer功能區,並且熟悉VBA編輯器。

用戶界面

用兩個按鈕和一些數據構建一個工作表。  用兩個按鈕和少量數據構建工作表

該工作表將顯示其功能區,以及Excel提供的所有right_click功能。

該表可用 此處.

VBA代碼

有許多可以禁用的命令欄控件。 您將需要在Google上搜索這些控件的ID號。 在本練習中,我們將使用ID 19和21。

Sub Auto_Open()    ‘Auto_open runs automatically when the workbook is opened
    Dim Control As Office.CommandBarControl

    Application.CommandBars("ply").Enabled = False     'disables right-Click on sheet tab

    For Each Control In Application.CommandBars.FindControls(ID:=21)    'disables CUT
        Control.Enabled = False
    Next Control

    For Each Control In Application.CommandBars.FindControls(ID:=19)     'disables COPY
        Control.Enabled = False
    Next Control
    Application.CellDragAndDrop = False
 
    Application.ExecuteExcel4Macro "Show.ToolBar(""Ribbon"", False)"     'Hides ribbon
End Sub

Sub Restore()
    Application.CommandBars("ply").Enabled = True     'enables right-click on sheet tab

    Dim Control As Office.CommandBarControl

    For Each Control In Application.CommandBars.FindControls(ID:=21)     'enables CUT
        Control.Enabled = True
    Next Control

    For Each Control In Application.CommandBars.FindControls(ID:=19)     'enables COPY
        Control.Enabled = True
    Next Control
    Application.CellDragAndDrop = True

    Application.ExecuteExcel4Macro "Show.ToolBar(""Ribbon"", True)"     'shows ribbon
End Sub

Sub Auto_close()    
    Call Restore    ‘Ensure other workbooks work properly
End Sub

將“還原”按鈕分配給子“還原”,將“禁用”按鈕分配給子“自動打開”。

運行自動打開代碼; 您會注意到,右鍵單擊菜單上的“剪切和復制”已禁用,並且功能區已消失。 您也將無法從工作表選項卡將工作表移動到另一個工作簿。將“禁用”按鈕分配給Sub Auto_open

這些預防措施總有辦法解決,但目的是使除嚴重的黑客外的所有人都難以承受; 保護電子表格是一種進一步的威懾措施,並且可以確保不能直接從子文件夾複製該電子表格。

最後,保護您的代碼不被查看或更改:  工具>屬性>保護.

Excel文件損壞

“我已將文件刪除了重複數據; 現在,我沒有任何明顯的原因遇到Excel故障。 但是,我仍然希望今天能完成。”

結局是否令人滿意可能取決於用戶是否擁有有效的工具來進行 修復Excel。 在這種情況下,電子表格的行數超過90,000。

作者簡介:

Felix Hooker是的數據恢復專家 DataNumen,Inc.是數據恢復技術的全球領導者,包括 修復rar 和sql恢復軟件產品。 欲了解更多信息,請訪問 萬維網。datanumen.COM

立即分享:

評論被關閉。