返回列表 上一主題 發帖

[發問] 如何禁止使用VBA按鈕

[發問] 如何禁止使用VBA按鈕

請問我在一個活頁部內, 有一個工作表"目錄"是有按鈕並設有巨集, 因活頁部有多人使用, 我將工作表"目錄"保護, 但仍是可以按鍵執行巨集, 只是不能修改工作表內容.

請問除了隱藏工作表外, 尚有甚麼方法?

請賜教!

回復 1# missbb


   按鈕必須是ActiveX是控制項
其屬性為.Enabled,可控制可使用或不可使用
例如:
CommandButton1.Enabled = False'為不可使用
CommandButton1.Enabled =True'為可使用

當然你必須寫一巨集,利用密碼來掌控可否使用
在 Workbook_Open關閉使用如下
Private Sub Workbook_Open()
Worksheets("工作表1").CommandButton1.Enabled = False
End Sub
下再利用巨集來啟用它
Private Sub pas_Click()
aa = InputBox("請輸入密碼")
pass = "12345"
If aa = pass Then
    CommandButton1.Enabled = False
End If
End Sub

TOP

回復 2# lpk187

感謝解答!:) 中秋節快樂!

TOP

回復 2# lpk187
你好, 我加入了密碼錯誤出現MSGBOX及退出, 但COMMANDBUTTON變了灰色, 請問問題在那??求指點? 03 VBA 另存新檔 OK 20150928.rar (27.31 KB)
  1. Private Sub CommandButton1_Click()
  2. Call Splitbook
  3. End Sub

  4. Sub Splitbook()

  5. aa = InputBox("請輸入密碼")
  6. pass = "12345"
  7. If aa = pass Then
  8.     CommandButton1.Enabled = False
  9. If aa <> pass Then
  10. MsgBox "錯誤輸入"
  11. End If

  12. End If


  13. Dim xPath As String
  14. xPath = Application.ActiveWorkbook.Path
  15. Application.ScreenUpdating = False
  16. Application.DisplayAlerts = False
  17. For Each xWs In ThisWorkbook.Sheets
  18.     xWs.Copy
  19.     Application.ActiveWorkbook.SaveAs Filename:=xPath & "\" & xWs.Name & ".xlsx"
  20.     Application.ActiveWorkbook.Close False
  21. Next
  22. Application.DisplayAlerts = True
  23. Application.ScreenUpdating = True
  24. End Sub
複製代碼

TOP

回復 4# missbb


    If aa = pass Then
    CommandButton1.Enabled = False<<這裡應該為True才對,不好意思。

TOP

回復 5# lpk187

我試了OK, 但如密碼不符卻沒有出現MSGBOX, 而會繼續執行儲存, 是CALL的錯誤?

:dizzy: 03 VBA 另存新檔 OK 20150928 v2.rar (28.09 KB)

TOP

回復 6# missbb
試試看
  1. aa = InputBox("請輸入密碼")
  2.     pass = "12345"
  3.     If aa = pass Then
  4.         CommandButton1.Enabled = False
  5.     ElseIf aa <> pass Then
  6.         MsgBox "錯誤輸入"
  7.         CommandButton1.Enabled = True
  8.     End If
複製代碼
感恩的心......(在麻辣家族討論區.用心學習會有進步的)
但資源無限,後援有限,  一天1元的贊助,人人有能力.

TOP

回復 6# missbb


    aa = InputBox("請輸入密碼")
pass = "12345"
If aa = pass Then
    CommandButton1.Enabled = True
Else
    CommandButton1.Enabled = False
    MsgBox "錯誤輸入"
    Exit Sub
End If

TOP

回復 8# lpk187

抱歉打擾了, 試了兩位大大的方法, 尚有小問題:

GBKEE的方法, 密碼對時無問題, 但如密碼錯誤後, 仍會執行.

Lpk187的方法, 不論密碼對時無問題, 但執行VBA後按鈕變灰, 關閉檔案再開, 按鈕仍是灰色. 如密碼錯誤後, 按鈕變灰, 關閉檔案再開, 按鈕仍是灰色.

TOP

回復 7# GBKEE

抱歉打擾了, 試了兩位大大的方法, 尚有小問題:

GBKEE的方法, 密碼對時無問題, 但如密碼錯誤後, 仍會執行.

Lpk187的方法, 不論密碼對時無問題, 但執行VBA後按鈕變灰, 關閉檔案再開, 按鈕仍是灰色. 如密碼錯誤後, 按鈕變灰, 關閉檔案再開, 按鈕仍是灰色.

TOP

        靜思自在 : 並非有錢魷是快樂,問心無愧心最安。
返回列表 上一主題