Sunlim指出,在安装Office时,用户指定其名称。可以在某些Office程序(如Word)中访问此名称。 Sunlim想知道他如何在Excel中访问用户名并将其放置在单元格中。

这样做的方法是实现一个简短的单行宏,该宏访问Application对象的http://username-password.com/[UserName]属性。 ExcelTips的另一期中详细介绍了此技术:

http://excel.tips.net/T003289

该方法非常适合确定与当前Excel安装相关的用户名。但是,那可能与谁正在使用当前工作簿不同。例如,如果共享工作簿,则可能有多个人同时使用它。在这种情况下,您需要一种确定这些名称的方法,如下所示:

Function UserNames() As String     Dim Users As Variant     Dim sMsg As String     Dim iIndex As Integer

Users = ActiveWorkbook.UserStatus

For iIndex = 1 To UBound(Users, 1)

sMsg = Users(iIndex, 1) & vbLf     Next iIndex     'remove final line feed     sMsg = Left(sMsg, Len(sMsg) - 1)



UserNames = sMsg End Function

要使用此功能,只需在要显示名称的单元格中输入以下公式:

=UserNames

如果您想知道当前正在使用计算机的人,则最好将视线移到Office之外,而从Windows本身获取名称。这样,您可以确定谁登录了Windows并将其用作用户名。这需要一个API函数调用声明,但相对而言比较容易:

Private Declare Function GetUserName Lib "advapi32.dll" _   Alias "GetUserNameA" (ByVal lpBuffer As String, nSize _   As Long) As Long

Function UserName2() As String     Dim strBuff As String * 100     Dim lngBuffLen As Long

lngBuffLen = 100     GetUserName strBuff, lngBuffLen     UserName2 = Left(strBuff, lngBuffLen - 1)

End Function

注意:

如果您想知道如何使用此页面(或_ExcelTips_网站上的任何其他页面)中描述的宏,我准备了一个特殊页面,其中包含有用的信息。

_ExcelTips_是您进行经济高效的Microsoft Excel培训的来源。

本技巧(7251)适用于Microsoft Excel 97、2000、2002和2003。可以在以下功能区中为Excel的功能区界面(Excel 2007及更高版本)找到本技巧的版本: