仅在为特定用户名打开工作簿时自动运行的宏

时间:2018-10-19 14:27:49

标签: excel vba

在工作中的网络上有多个用户。当特定用户打开工作簿时,我需要一个电子表格来自动运行一些代码。当所有其他用户打开工作簿时,将不会运行宏。用户名为Alan Smith&Susan Wells。

代码是:

Sub Auto_Open()

    Application.ActiveProtectedViewWindow.Edit
    Application.Wait (Now + TimeValue("0:00:10"))

    Sheets("ABG").Cells.Copy
    Sheets("Hardcode").Cells.PasteSpecial Paste:=xlPasteValues
    Application.CutCopyMode = False
    ThisWorkbook.Close SaveChanges:=True

End Sub

您知道如何在打开文档时更改此设置以检查用户是Alan Smith还是Susan Wells,如果是Alan或Susan然后运行代码?但是如果是Paul,那么只是在不运行宏的情况下打开文档?

谢谢!

1 个答案:

答案 0 :(得分:0)

您可以尝试使用此代码(在创建副本备份之前)

Private Sub Workbook_Open()
Dim name As String

name = Application.InputBox("insert your name")

If (UCase(name) <> UCase("Alan Smith")) Then ' control input in UPPPERCASE MODE
    Worksheets("Sheet1").Activate  ' active sheet1 if input is Alan Smith

    If UCase(name) <> UCase("Susan Wells") Then 'control input in UPPERCASE MODE

        ActiveWorkbook.Close savechanges:=False ' if input no Alan Snit and Susan Wells close workbook
    Else
        Worksheets("Sheet2").Activate ' if input is Susan Wells active sheet2
    End If
End If
End Sub

您必须将此代码放入thisworkbook文件中。您会看到图像。 希望对您有帮助

enter image description here