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

Excel 仅为特定用户名打开工作簿时自动运行的宏,excel,vba,Excel,Vba,在工作的网络上有多个用户。我需要一个电子表格,以便在特定用户打开工作簿时自动运行一些代码。当所有其他用户打开工作簿时,不会运行宏。用户名是艾伦·史密斯和苏珊·威尔斯 代码是: Sub Auto_Open() Application.ActiveProtectedViewWindow.Edit Application.Wait (Now + TimeValue("0:00:10")) Sheets("ABG").Cells.Copy Sheets("Hardco

在工作的网络上有多个用户。我需要一个电子表格,以便在特定用户打开工作簿时自动运行一些代码。当所有其他用户打开工作簿时,不会运行宏。用户名是艾伦·史密斯和苏珊·威尔斯

代码是:

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,那么只打开文档而不运行宏

谢谢

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

Private子工作簿\u Open()
将名称设置为字符串
name=Application.InputBox(“插入您的姓名”)
如果(UCase(名称)UCase(“Alan Smith”)),则“在UPPERCASE模式下控制输入
工作表(“表1”)。如果输入为Alan Smith,则激活“活动表1”
如果是UCase(名称)UCase(“Susan Wells”),则“以大写模式控制输入”
ActiveWorkbook.Close savechanges:=False'如果没有输入Alan Snit和Susan Wells关闭工作簿
其他的
工作表(“Sheet2”)。如果输入是活动的,则激活“Sheet2”
如果结束
如果结束
端接头
您必须将此代码放入thisworkbook文件中。你看到图像了。 我希望这对你有帮助

请参见。使用if Environ(“用户名”)=“Paul”/or variable。那么可能的副本
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