首页 > 解决方案 > 捕获多个用户名

问题描述

我正在编写一个 excel 文件,该文件将分发给许多用户以获得他们的批准(用户名作为证据)。所以我创建了一个下拉菜单,如果用户给出 yes ,则需要捕获相应的用户名作为批准证据。 在此处输入图像描述

我使用的VBA,参考下面

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

在单元格中我使用 =Getusername() 作为属性

现在真正的问题是,假设我是给予“是”批准的批准者之一,上述 VBA 和公式将我的用户名作为证据。然后我将 excel 文件(我给了是,我的用户名作为证据)邮寄给了另一个批准者,当他打开 excel 文件时,我给出的批准更改并捕获当前用户名(另一个批准者用户名)作为证据。我不知道如何避免这种冲突。

我期待的解决方案,总共需要三个批准者批准 excel 文件,并且必须捕获他们相应的用户名作为证据。

需要专家帮助

标签: excelvbaexcel-formula

解决方案


正如 Tim Williams 所说,您需要将用户名捕获为静态值。简而言之,您需要为每个组合框定义一个目标单元格,然后使用类似于

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)

推荐阅读