簡體   English   中英

根據用戶名隱藏工作表

[英]Hide a worksheet based on username

我已經在下面有一個宏,單擊按鈕即可取消隱藏工作表,並且可以正常工作。 但是,我希望更改此宏,以便只有兩個用戶(其用戶名是“JSMITH”和“DTAYLOR”)能夠取消隱藏名為“Rates”的工作表。

如果其他人(其用戶名不是上述兩者之一)試圖取消隱藏工作表,我希望 Excel 顯示一條消息“您無權打開它”。

此外,我需要確保只有這兩個用戶才能在沒有 vba 的情況下以傳統方式取消隱藏(例如,通過右鍵單擊可見的工作表選項卡並選擇取消隱藏或從任何工作表選項卡中選擇格式、工作表和然后取消隱藏)。

您能否建議如何修改以下代碼以完成上述所有操作?

Sub Hide_AllRatesSheet()

Worksheets("Rates").Visible = False 
ThisWorkbook.Sheets("Names").Activate 

End Sub

注意:您可以使用xlSheetVeryHidden屬性來允許僅從代碼中xlSheetVeryHidden它(而不是通過鼠標右鍵單擊)。

嘗試類似下面的代碼:

Sub Hide_AllRatesSheet()

Select Case Environ$("username") '<-- check username
    Case "JSMITH", "DTAYLOR"  
        If ActiveSheet.Name <> "Rates" Then '<-- make sure "Rates" is not the ActiveSheet
            Worksheets("Rates").Visible = False
        Else
            ThisWorkbook.Sheets("Names").Activate
            Worksheets("Rates").Visible = False
        End If
    Case Else
        MsgBox "you're not authorised to open this"
End Select

End Sub

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM