EXCEL VBA 取当前登录 用户名的多种实现方法

1. 使用Wscript

Dim wsh As Object

Set wsh = CreateObject("WScript.Network")

Sheet1.Range("a1") = wsh.UserName

2. 使用环境变量

dim iuser

iuser = Environ("username")

3.VBA获取excel文件当前用户名的代码  (与windows用户名看看有否区别)

Public Sub 获取当前工作表的用户名()

MsgBox "当前用户名是: " & Application.UserName

End Sub

4. 使用API 方法获取 用户名

‘API调用

Private Declare Function GetUserName Lib "advapi32.dll" Alias "GetUserNameA" _

(ByVal lpBuffer As String, nSize As Long) As Long

’转成VBA里常规的字符

Public Function NTDomainUserName() As String

Dim strBuffer As String * 255

Dim lngBufferLength As Long

Dim lngRet As Long

Dim strtemp As String

lngBufferLength = 255

strBuffer = String(255, 0)

lngRet = GetUserName(strBuffer, lngBufferLength)

strtemp = LCase(Left(strBuffer, lngBufferLength - 1))

NTDomainUserName = strtemp

End Function

Sub NetworkInfo()Dim wshnetwork, info As StringSet wshnetwork = CreateObject("WScript.Network") '获 当前 电脑用户信息'info = "Domain = " & wshnetwork.UserDomain'用户域信息'info = info & Chr(10) & "Compu... 获 计算机 名称主要有以下几种 方法 :1.Environ系统环境函数Environ("computername")2.WScript Shell ObjectCreateObject("WScript.Shell").ExpandEnvironmentStrings("%COMPUTERNAME%")3.WScript Network ObjectCreateObject("WScript.Netwo... <br /><br />‘API调用<br />Private Declare Function GetUserName Lib "advapi32.dll" Alias "GetUserNameA" _<br />    (ByVal lpBuffer As String, nSize As Long) As Long<br /> <br />’转成 VBA 里常规的字符<br /><br />Public Function NTDomainUserName() As String<br /> <br />  us=SysUser.objects.filter(role_id=role_id, user_name=user_name) if not user_id and us:#如果没传用户id,则只要查出来有数据则返回已存在 return returnResponse(ret=400,msg=' 用户名 已存在') if user_... Text1.text = VBA .Environ("computername") 获 用户名 : text1.text= VBA .Environ("username")用API 计算机 名: Private Declar... 使用公式如下 =MID(CELL("filename",$A$1), FIND("[",CELL("filename",$A$1)) +1, FIND("]",CELL("filename",$A$1)) - FIND("[",CELL("filename",$A$1)) - 6 ) CELL("filename",$A$1)对应的内容如下 C:\Users\u...