如何在Word中通过域代码插入系统格式的用户名?
如何在Word中通过域代码插入系统格式的用户名?
嘿,这个问题我之前帮不少人解决过~Word自带的UserName域确实只能返回你在Word选项里设置的那个用户名(对应VBA里的Application.UserName),没法直接拿到系统登录名(就是你说的Environ("username")那种格式,比如super.user)。
下面给你两种可行的方案,按需选择:
方法一:VBA宏+域代码组合(最可靠推荐)
这个方法既能满足你用域代码插入的需求,又能稳定获取系统用户名:
- 第一步:打开Word的VBA编辑器(按
Alt+F11就行),右键点击你的文档,插入一个新模块,然后把这段代码粘贴进去:
Function GetSystemUserName() As String GetSystemUserName = Environ("username") End Function
- 第二步:回到Word文档,按下
Ctrl+F9插入域代码的专用大括号(别手动打,手动的不生效),然后在括号里输入= GetSystemUserName(),最终域代码看起来是这样:{ = GetSystemUserName() } - 第三步:按下
F9更新域,就能看到你想要的系统登录名格式啦。
方法二:纯域代码的间接方案(局限性大)
如果你实在不想碰VBA,有个间接办法,但只在特定场景有用:
如果你的企业环境里Word默认用户名和系统登录名是自动同步的,或者你能通过文档相关的属性(比如FILENAME域)提取到系统用户名,那可以用复杂的域代码拼接提取,但这个方法非常不稳定,文件名或属性一变就失效,所以真心不推荐。
另外要注意:如果文档要发给其他人,对方打开时需要启用宏,这个域才能正常更新哦~
备注:内容来源于stack exchange,提问作者Dhay
相关产品推荐
相关产品推荐

