如何使vba中的位置variables?

Workbooks.Open ("C:\Users\**VARIANT**\Desktop\Excel Before Code Templates (BCT)\Data_BCT.xlsx") 

我想使“变体”部分变成依赖于input的variables。 我想这样做,因为它需要每个其他用户修改。

您可以使用Environ$获取当前用户:

 Dim desktop As String desktop = "C:\Users\" & Environ$("USERNAME") & "\Desktop\" Debug.Print desktop 

参考: 特殊文件夹

 FilePath = getDeskTopPath & "\Excel Before Code Templates (BCT)\Data_BCT.xlsx" If Len(Dir(FilePath)) > 0 then Workbooks.Open (FilePath) End If 

 Function getDeskTopPath() Dim objShell As Object Dim strPath As String Set objShell = CreateObject("Wscript.Shell") strPath = objShell.SpecialFolders("Desktop") getDeskTopPath = strPath Set objShell = Nothing End Function 

您也可以使用Application.FileDialog来select文件或文件夹。 详细信息请参见: VBA FILEDIALOG – 打开,select和保存文件和文件夹

 Dim variablePart as String variablePart = "someFolderName" Workbooks.Open("C:\Users\" & variablePart & "\Desktop\Excel Before Code Templates (BCT)\Data_BCT.xlsx") 'will lead to: C:\Users\someFolderName\Desktop\Excel Before Code Templates (BCT)\Data_BCT.xlsx") 

只需使用下面的代码:

 Sub InsertUserName() Dim folder_var As String folder_var = InputBox("Insert your User Name") Workbooks.Open ("C:\" & folder_var & " \Desktop\Excel Before Code Templates (BCT)\Data_BCT.xlsx") End Sub