如何根据用户名从Excel打开文件

如何根据用户名从Excel打开文件,excel,vba,Excel,Vba,我正在尝试使用VBA从Excel打开Word文件。现在我有这个代码: Sub OpenWordFile_Odrebekræftelse() Set wordapp = CreateObject("word.Application") Dim s As String On Error Resume Next s = Application.InputBox(Prompt:="Indtaste brugernavn (initialer)", Type:=2)

我正在尝试使用VBA从Excel打开Word文件。现在我有这个代码:

Sub OpenWordFile_Odrebekræftelse()

    Set wordapp = CreateObject("word.Application")

    Dim s As String
    On Error Resume Next
    s = Application.InputBox(Prompt:="Indtaste brugernavn (initialer)", Type:=2)

    wordapp.documents.Open "C:\Users\" & s & "\Standarddokumenter\C02 Aftale\C02.5 Kontrakt\Ordrebekræftelse_version 1.1.dotx", ReadOnly:=True

    wordapp.Visible = True
这允许我在按下按钮时输入用户的首字母来打开Word文件。文件的路径根据用户的不同而不同,这就是我的问题所在

这个方法工作得很好,但我想摆脱“输入您的首字母”部分,并有一个宏,根据谁的会话正在使用,直接将用户名输入到文件的路径中。。。如果你明白我的意思

有人能帮我吗?我查看了Getusername的内容,但无法使其正常工作

谢谢


编辑:我不想在单元格中显示用户名,我想将其“插入”到vba代码中的路径文件中(此时“&s&”表示)…如果有意义的话!:)

s=Application.UserName
应该可以做到这一点


s=Environ(“USERPROFILE”)
可能更好。

您应该使用环境变量
%USERPROFILE%
,该变量将重新生成
%SystemDrive%\Users\{username}

就你而言

wordapp.documents.Open "%USERPROFILE%\Standarddokumenter\C02 Aftale\C02.5 Kontrakt\Ordrebekræftelse_version 1.1.dotx", ReadOnly:=True

应该有用


有关更多信息,请参阅:。

旁注:您应该避免在下一次错误恢复时使用
。请阅读以了解如何操作。只需注意:这两行不相等!第一个结果类似于
Prename I.names
(在本例中,这根本没有帮助,因为它返回的是真实姓名而不是Windows用户名),第二个结果类似于
C:\Users\username
。第二个效果很好!非常感谢。
wordapp.documents.Open Environ("USERPROFILE") & "\Standarddokumenter\C02 Aftale\C02.5 Kontrakt\Ordrebekræftelse_version 1.1.dotx", ReadOnly:=True