Board logo

標題: 欄的隱藏及保護問題。 [打印本頁]

作者: tc1701    時間: 2016-3-12 00:41     標題: 欄的隱藏及保護問題。

各位師兄大家好,小弟剛學EXCEL不久,想問一些少少問題。

最迎公司要作一個表給其他部門看,這個表我首先有兩個VBA ,
第一個VAB就是把欄B及C隱藏,只顯示欄A,D,E;
第二個VBA就是把欄B,C,D,E隱藏,只顯示欄A;
至於欄F 對於一些敏感數據,所以不能給其他部門看,所以長期隱藏。
但如果我單單把欄F隱藏之後把EXCEL給其他部門看,他們可以把欄F取消隱藏去,結果隱藏就沒有意思。

最後我想做到的效果就是他們不得修改任何儲存格內容,但又可以用到這兩個按鈕,又可以CTRL+F搜尋(因為數據都算多),又禁止他們看到欄F任何數據。

請問這個效果能做到嗎?先感激萬分。



A     B     C     D     E     F  ←長期隱藏             VBA1 ←按鈕
1      1     1     1     1     1
2      2     2     2     2     2                                    VBA2←按鈕
3      3     3     3     3     3
作者: 學到老死    時間: 2016-3-12 15:12

樓主好,提出一個方式供樓主參考,就是除了原檔案外,再複製兩個同檔案,仍用兩個VBA,一個為刪除B,C,F欄,跟一個刪除B,C,D,E,F欄,在個別提供給他部門。
作者: 准提部林    時間: 2016-3-12 19:12

1.工作表全部儲存格都設為〔鎖定〕.再將H1的鎖定取消
 
2.在工作表程式區,放入以下程式:
  Private Sub Worksheet_Change(ByVal Target As Range)
  With Target
     If .Address <> "$H$1" Then Exit Sub
     If .Value <> "12345" Then Exit Sub
     ActiveSheet.Unprotect "1111"
     [A:F].EntireColumn.Hidden = False
     [A1].Select
     [H1] = ""
  End With
  End Sub
  __目的:在H1輸入"12345”(此密碼可自行決定),解除工作表保護及顯示全部欄位,以利檔案管理者進行編輯工作
 
3.模組區放以下程式,並指定給按鈕:
  Sub 顯示1()
  With ActiveSheet
     .Unprotect "1111"
     .[A:F].EntireColumn.Hidden = True
     .[A1,D1,E1].EntireColumn.Hidden = False
     .Protect "1111"
     .[A1].Select
  End With
 End Sub
 
 Sub 顯示2()
 With ActiveSheet
    .Unprotect "1111"
    .[A:F].EntireColumn.Hidden = True
    .[A1].EntireColumn.Hidden = False
    .Protect "1111"
    .[A1].Select
 End With
 End Sub
 __目的:解除工作表保護(密碼可自行設定),調整欄位隱藏後,恢復保護,即可防止更改,但可執行搜尋
 
4.程式碼必須設定〔專案保護〕否則使用者還是可以看到程式區的密碼,
  但是這專案保護密碼要自己記得住,免得解不開而無法進行程式的更改!
  (註:這保護密碼並非絕對安全,有心人還是有辦法破解的,只能防君子)

有疑問,可網上關鍵字找一下,有很多文章可看,就不另作說明!!
作者: tc1701    時間: 2016-3-13 20:34

感謝大大!!!真的可以用了~~又學會了一課~!十分感恩!!多謝你=]
作者: tc1701    時間: 2016-4-8 00:43

回復 3# 准提部林


    版大你好,最近都沒時間上線,這個程式真是神。有說明非常好,,,
可惜我一句也不明白..不是我懶..而是真的太深奧..
版大方便有天可以詳細解釋一下嗎?
因為我想利用這個程式碼套用其他EXCEL用於工作上,而且我想了解了,而跟同事們解釋一下,不想他們只會按而不去學。

肯教的真的會十分感激!!!




歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)