我有一个带有VBA的Excel文件,它从我的计算机上的文件中提取信息。 Excel文件位于网络文件夹中,我希望网络上的其他用户也可以使用它。但是,我已经在VBA上硬编码了文件路径,因此,每当其他用户打开它时,它就会查找一个不可用的文件。
这是我想改变的路径:
C:\Users\User1\Documents\The Market in\DATA FOR REPORTS.xlsx
路径上的唯一区别是用户名:User1,user2等
如何编写VBA代码,以便用Windows用户名替换文件路径中的用户名?
我曾尝试使用外卡并尝试使用ENVIRON(“用户名”),但未成功。
我要替换的代码如下:
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
非常感谢
答案 0 :(得分:7)
尝试这样的事情:
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
答案 1 :(得分: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