3

Я хочу, чтобы мои макросы Excel активировались для определенных пользователей, распознаваемых Windows Excel. Как я могу это сделать?

2 ответа2

4

Вы можете использовать окружение ("имя пользователя"), чтобы получить идентификатор входа в Windows пользователя. Вы можете использовать это, чтобы определить, должен ли макрос выполняться или нет.

1

Просто чтобы расширить существующий ответ, вам нужно что-то подобное для каждого макроса -

Sub macro1()
    If test() Then
        MsgBox ("you can use macros!")
    'do stuff
    End If
End Sub

Вы запустите все макросы, вызывающие test()

Function test()
test = False
'Pass the user to the checking function
If allowed(Environ("username")) Then
    test = True
    Else: MsgBox ("You can't use macros here")
End If
End Function

Эта функция вызовет вашу проверку, чтобы увидеть, является ли пользователь частью разрешенного списка:

Public Function allowed(ByRef TF As String) As Boolean
    Dim arr As Variant
    arr = Array("name1", "name2", "name3")

    For Each Item In arr
        If Item = TF Then
        allowed = True
        Exit Function
        Else: allowed = False
        End If
    Next

End Function

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .