Захват нескольких имен пользователей - PullRequest
0 голосов
/ 10 июля 2020

Я работаю над файлом Excel, который будет разослан многим пользователям для получения их одобрений (имя пользователя в качестве доказательства). Итак, я создал раскрывающееся меню, если пользователь дает «да», соответствующее имя пользователя должно быть записано в качестве доказательства утверждения. введите описание изображения здесь

VBA, который я использовал, см. Ниже

Function GetUserName() As String
    'GetUserName = Environ$("username")
    'or
    GetUserName = Application.UserName
End Function

и в ячейке, которую я использовал = Getusername () как свойство

Теперь настоящая проблема, предположим, что я Я один из утверждающих, дающих «да» на одобрение, приведенный выше VBA и формула фиксируют мое имя пользователя в качестве доказательства. Затем я отправляю файл excel (который я дал «да» и мое имя пользователя записано в качестве доказательства) другому утверждающему. Пока он открывает файл excel, одобрение, данное мной, меняет и фиксирует текущее имя пользователя (другое имя пользователя утверждающего) в качестве доказательства. Я не знаю, как избежать этого конфликта.

Решение Я ожидаю, всего три утверждающих должны утвердить файл Excel, и их соответствующее имя пользователя должно быть записано в качестве доказательства.

Помощь экспертов необходимо

1 Ответ

1 голос
/ 10 июля 2020

Как правильно говорит Тим ​​Вильямс, вам нужно записать имя пользователя как статическое c значение. Вкратце, вам нужно определить ячейку назначения для каждого поля со списком, а затем использовать что-то вроде

DestinationCell.Value = Application.UserName

Вот один простой и простой подход:

Private Sub ComboBox1_Change()

    Dim DestinationCell As Range
    
    Set DestinationCell = ActiveSheet.Cells(2, 2)
    If ComboBox1.Value = "Yes" Then DestinationCell.Value = Application.UserName

End Sub

В качестве альтернативы вы можно определить ячейку назначения относительно LinkedCell поля со списком, например:

Set DestinationCell = ActiveSheet.Range(ComboBox1.LinkedCell).Offset(0, -2)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...