【问题标题】:Replace file path in VBA with user name用用户名替换VBA中的文件路径
【发布时间】:2017-08-25 13:03:46
【问题描述】:

我有一个 Excel 文件,上面写有 VBA,它从我计算机上的文件中提取信息。 Excel 文件位于网络文件夹中,我希望网络上的其他用户也可以使用它。但是,我在 VBA 上对文件路径进行了硬编码,因此,每当其他用户打开它时,它都会查找不可用的文件。

这是我想改变的路径:

C:\Users\User1\Documents\The Market in\DATA FOR REPORTS.xlsx

路径上的唯一区别是用户名:User1、user2 等。

如何编写 VBA 代码,以便将文件路径中的用户名替换为打开它的 Windows 用户名?

我尝试过使用通配符,也尝试过使用ENVIRON("username")但没有成功。

我要替换的代码如下:

Private Sub Workbook_Open()

Application.Visible = False
WelcomeForm.Show
Workbooks.Open ("C:\Users\User1\Documents\The Market in\DATA FOR REPORTS.xlsx")

End Sub

这就是我使用 ENVIRON 所做的:

Private Sub Workbook_Open()

Dim username As String

username = Environ("username")

Application.Visible = False
WelcomeForm.Show
Workbooks.Open ("C:\Users\&username&\Documents\The Market in\DATA FOR REPORTS.xlsx")

End Sub

非常感谢

【问题讨论】:

  • Environ("Username") 应该可以工作。你能说明你是如何使用它的吗?问题/错误是什么?
  • 我刚刚将它添加到问题中。谢谢你或你的帮助!
  • 这不是正确的连接语法 - "C:\Users\&username&\Documents - 仔细看看下面的答案

标签: vba excel


【解决方案1】:

试试这样的:

Private Sub Workbook_Open()
   Application.Visible = False
   WelcomeForm.Show
   Workbooks.Open ("C:\Users\" & Environ("UserName") & "\Documents\The Market in\DATA FOR REPORTS.xlsx")
End Sub

【讨论】:

    【解决方案2】:

    Environ("userprofile") 将返回路径和用户名。
    在我的电脑上它返回C:\Users\darren.bartrup-cook

    另一种方式是:
    CreateObject("WScript.Shell").SpecialFolders("MyDocuments")
    在我的电脑上,这会返回 C:\Users\darren.bartrup-cook\Documents

    你可以这样使用它:

    Private Sub Workbook_Open()
    
        Dim wrkBK As Workbook
        Dim DocFldr As String
    
        DocFldr = CreateObject("WScript.Shell").SpecialFolders("MyDocuments")
    
        Set wrkBK = Workbooks.Open(DocFldr & "\The Market in\DATA FOR REPORTS.xlsx")
    
        MsgBox wrkBK.Name & " is open", vbOKOnly + vbInformation
    
    End Sub
    

    【讨论】:

      猜你喜欢
      • 2015-11-02
      • 1970-01-01
      • 1970-01-01
      • 2020-10-30
      • 1970-01-01
      • 2021-01-17
      • 2013-12-10
      • 2017-12-17
      • 1970-01-01
      相关资源
      最近更新 更多