我有一个带有VBA的Excel文件,它从我的计算机上的一个文件中提取信息。Excel文件位于网络文件夹上,我希望网络上的其他用户也使用它。但是,我已经对VBA上的文件路径进行了硬编码,因此,每当其他用户打开它时,它都会查找不可用的文件。
这是我想要改变的道路:
C:\Users\User1\Documents\The Market in\DATA FOR REPORTS.xlsx路径上唯一的区别是用户名: User1、user2等。
如何编写VBA代码,以便将文件路径中的用户名替换为打开它的Windows用户名?
我尝试使用外卡,也尝试使用环境(“用户名”),但没有成功。
下面是我想要替换的代码:
Private Sub Workbook_Open()
Application.Visible = False
WelcomeForm.Show
Workbooks.Open ("C:\Users\User1\Documents\The Market in\DATA FOR REPORTS.xlsx")
End Sub这就是我在环境中所做的:
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非常感谢
发布于 2017-08-25 13:20:03
试着做这样的事情:
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发布于 2017-08-25 13:45:48
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 Subhttps://stackoverflow.com/questions/45882111
复制相似问题