如何使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