Excel 工作簿保護:如何阻止使用者篡改工作簿?

Excel 工作簿保護:如何阻止使用者篡改工作簿?

我有一本工作簿,裡面有很多工作表、巨集和計算。我現在需要發送這張表(昨天之前沒有預見到)。如何鎖定它以便用戶:

  • 無法存取/查看巨集?
  • 無法取消隱藏隱藏的工作表?
  • 無法查看程式碼或新增程式碼/

我已經瀏覽並解鎖了那些我希望它們更改的單元格。隱藏多行按鈕和公式,然後鎖定它們。隱藏的工作表。我現在已使用密碼保護工作表。

然而,這是否會阻止用戶訪問巨集/程式碼?或者取消隱藏床單?如果沒有,如何正確/安全/完全鎖定工作簿?

這聽起來像是老大哥類型的安全保護,但我只是確保所有互連的單元格不會意外更改,或者運行我不需要它們運行的巨集。

非常感謝

麥可.

答案1

首先 - 請注意,Excel 中的大多數保護功能都是不是安全功能。大多數都很容易被破壞或繞過。它們可以很好地阻止意外損壞 - 但不會阻止任何知道他們在做什麼並且真正想看到您隱藏的內容的人。

也就是說,這裡有一些答案:

初始保護

您已經介紹了這一點,基本上是鎖定單元格並隱藏需要的東西。
然後保護每一個床單。
然後保護工作簿本身。

非常隱藏的床單

工作表可以「非常」隱藏,這意味著只能透過 VBA 取消隱藏(它們不會出現在介面的取消隱藏清單中)。這只需透過一行 VBA 完成,它需要至少運行一次才能觸發設定更改,並且在運行後不需要保留在文件中(但這可能有助於記住要取消隱藏的工作表)之後):

Sheets("Sheet1").Visible = xlVeryHidden

隱藏的VBA程式碼

為您的項目設定密碼。在 VBA 編輯器中右鍵點選您的模組Project Explorer,在標籤上選擇<ProjectName> Properties並設定密碼Protection

請注意,這些可以被暴力打開。

隱藏巨集

我假設您在這裡的意思是當有人打開視窗時您不希望它們出現在巨集列表中Run Macro

為此,請使所需的巨集為 aPrivate Sub或 a Function,這使得它們作為巨集不可見,但仍允許它們被同一模組中的其他程式碼呼叫。

我不認為你不能阻止人們跑步可見的宏,您不能將隱藏的巨集指派給按鈕。

答案2

如果您只想讓收件人不意外更改某些位,Excel 的保護就足夠了。但是,如果您不希望接收工作簿的人看到機密數據,那麼它們就沒有用。

如果您只想顯示資料而不是格式,「刷新」所有隱藏資料的簡單方法是將每個工作表匯出為 CSV,然後將它們重新匯入為新的 Excel 工作簿。 (嚴格來說第二步是可選的,但人們不習慣 CSV 文件,因此最好像他們期望的那樣發送 Excel 文件。)

如果您想要獲得人們無法修改的美觀輸出,請將工作表列印為 PDF 文件並發送。

相關內容