![](/img/trans.png)
[英]Hide rows in a worksheet based on a cell value in different worksheet using VBA
[英]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.