如何在 vba 中创建位置变量?

How to make location variable in vba?

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

我想使 "variant" 部分成为依赖于输入的变量。我想这样做,因为它需要为每个其他用户修改。

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

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

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

参考:Special Folders

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 选择文件或文件夹。详情见这篇文章:VBA FILEDIALOG – OPENING, SELECTING AND SAVING FILES AND FOLDERS