返回列表 上一主題 發帖

隱藏功能

本帖最後由 GBKEE 於 2014-10-24 12:57 編輯

回復 4# myleoyes
選取任意欄  按AA鈕,就可以隱藏不想讓他人使用的功能
點選任意儲存格  按BB鈕,    同樣也可以隱藏不想讓他人使用的功能

請問 按AA鈕,按BB鈕 的差異點在哪裡??
   
前輩!因為有程式在跑所以無法用, 保護工作表的方式

可參考 這裡  [保護工作表有許多選項,可參考VBA說明, Protect 方法]

加強一下,限制的權限.
  1. Option Explicit
  2. Dim Ar()
  3. Sub Ex_限制的權限()
  4.     Ar = Array("複製", "剪下", "貼上", "刪除", "清除內容", "取消隱藏")
  5.     '限制設置 True
  6.     限制設置 False
  7.     Application.CommandBars("Column").ShowPopup
  8. End Sub
  9. Private Sub 限制設置(Msg As Boolean)
  10.     Dim Com As CommandBar, C As Object, Cc As Object
  11.     On Error Resume Next
  12.     If Msg Then
  13.         For Each Com In Application.CommandBars
  14.             Com.Reset   '應用程式中的命令列的重設(恢復原設定)
  15.         Next
  16.         Exit Sub
  17.     End If
  18.     For Each Com In Application.CommandBars
  19.         For Each C In Com.Controls
  20.             限制設置_副程式 C, Msg
  21.             For Each Cc In C.Controls
  22.                 限制設置_副程式 Cc, Msg
  23.             Next
  24.         Next
  25.     Next
  26. End Sub
  27. Private Sub 限制設置_副程式(C As Object, xMsg As Boolean)
  28.     Dim A As Variant
  29.     For Each A In Ar
  30.         If C.Caption Like A & "*" Then C.Enabled = xMsg
  31.     Next
  32. End Sub
複製代碼
感恩的心......(在麻辣家族討論區.用心學習會有進步的)
但資源無限,後援有限,  一天1元的贊助,人人有能力.

TOP

回復 6# myleoyes
  1. Option Explicit
  2. 'ThisWorkbook模組 的程式碼
  3. Private Sub Workbook_Open()
  4. 'ThisWorkbook 檔案開啟時自動執行的預設事件
  5.     限制設置 False
  6. End Sub
  7. Private Sub Workbook_BeforeClose(Cancel As Boolean)
  8. 'ThisWorkbook 檔案關閉時自動執行的預設事件
  9.     限制設置 True
  10. End Sub
  11. Private Sub Workbook_WindowActivate(ByVal Wn As Window)
  12. 'ThisWorkbook 視窗(活頁簿)為作用中的視窗時自動執行的預設事件
  13.     限制設置 False
  14. End Sub
  15. Private Sub Workbook_WindowDeactivate(ByVal Wn As Window)
  16. 'ThisWorkbook 視窗(活頁簿)不是作用中的視窗時自動執行的預設事件
  17.     限制設置 True
  18. End Sub

  19. '******* 限制設置的程式碼 可置於一般模組為公用程序
  20. Sub 限制設置(Msg As Boolean)
  21.     Dim COM As CommandBar, C As Object, Cc As Object, AR()
  22.     AR = Array("複製", "剪下", "貼上", "刪除", "清除內容", "取消隱藏")
  23.     On Error Resume Next
  24.     For Each COM In Application.CommandBars
  25.         For Each C In COM.Controls
  26.             限制設置_副程式 C, Msg, AR
  27.             For Each Cc In C.Controls
  28.                 限制設置_副程式 Cc, Msg, AR
  29.             Next
  30.         Next
  31.     Next
  32. End Sub
  33. Private Sub 限制設置_副程式(C As Object, xMsg As Boolean, AR As Variant)
  34.     Dim A As Variant
  35.     For Each A In AR
  36.         If C.Caption Like A & "*" Then C.Enabled = xMsg
  37.     Next
  38. End Sub
複製代碼
感恩的心......(在麻辣家族討論區.用心學習會有進步的)
但資源無限,後援有限,  一天1元的贊助,人人有能力.

TOP

本帖最後由 GBKEE 於 2014-10-28 11:05 編輯

回復 8# myleoyes
參考看看
ThisWorkbook的程式碼
  1. Private Sub Workbook_Open()
  2. ' 檔案開啟時自動執行的預設事件
  3.     權限功能
  4. End Sub
  5. Private Sub Workbook_BeforeClose(Cancel As Boolean)
  6.     'ThisWorkbook 檔案關閉時自動執行的預設事件
  7.     限制設置 True
  8. End Sub
  9. Private Sub Workbook_WindowActivate(ByVal Wn As Window)
  10. 'ThisWorkbook 視窗(活頁簿)為作用中的視窗時自動執行的預設事件
  11.     限制設置 檔案管理者   
  12. End Sub
  13. Private Sub Workbook_WindowDeactivate(ByVal Wn As Window)
  14. 'ThisWorkbook 視窗(活頁簿)不是作用中的視窗時自動執行的預設事件
  15.     限制設置 True
  16. End Sub
複製代碼
Module1的程式碼
  1. Public 檔案管理者 As Boolean
  2. Sub 權限功能()
  3.     Dim zz As String, i As Integer
  4.     i = 3
  5.     Do
  6.         zz = InputBox("41821 輸入權限密碼" & vbLf & "你有(" & i & "次)機會可用!", "請輸入檔案管理者密碼!!")
  7.         i = i - 1
  8.     Loop Until zz = [F21] Or i <= 0 Or zz = ""
  9.     If zz = Sheet2.[F21] Then
  10.         檔案管理者 = True
  11.         限制設置 檔案管理者        
  12.     ElseIf zz <> Sheet2.Range("F21") Then
  13.         檔案管理者 = False
  14.         限制設置 檔案管理者
  15.         'ThisWorkbook.Close SaveChanges:=False
  16.     End If
  17. End Sub
  18. Sub 按鈕1()  '取消 檔案管理者
  19.     檔案管理者 = False
  20. End Sub
複製代碼
Sheet2的程式碼
  1. Private Sub Worksheet_SelectionChange(ByVal Target As Range)
  2.     If 檔案管理者 = False Then 權限功能
  3. End Sub
複製代碼
感恩的心......(在麻辣家族討論區.用心學習會有進步的)
但資源無限,後援有限,  一天1元的贊助,人人有能力.

TOP

        靜思自在 : 道德是提昇自我的明燈,不該是呵斥別人的鞭子。
返回列表 上一主題