首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用用户名替换VBA中的文件路径

用用户名替换VBA中的文件路径
EN

Stack Overflow用户
提问于 2017-08-25 13:03:46
回答 2查看 8.8K关注 0票数 3

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

这是我想要改变的道路:

代码语言:javascript
复制
C:\Users\User1\Documents\The Market in\DATA FOR REPORTS.xlsx

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

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

我尝试使用外卡,也尝试使用环境(“用户名”),但没有成功。

下面是我想要替换的代码:

代码语言:javascript
复制
Private Sub Workbook_Open()

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

End Sub

这就是我在环境中所做的:

代码语言:javascript
复制
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

非常感谢

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-08-25 13:20:03

试着做这样的事情:

代码语言:javascript
复制
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
票数 8
EN

Stack Overflow用户

发布于 2017-08-25 13:45:48

Environ("userprofile")将返回路径和用户名。

在我的电脑上,它返回C:\Users\darren.bartrup-cook

另一种方式是:

CreateObject("WScript.Shell").SpecialFolders("MyDocuments")

在我的个人电脑上,它返回C:\Users\darren.bartrup-cook\Documents

你可以这样用它:

代码语言:javascript
复制
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
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45882111

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档