如果文件夹不存在,则在任何用户的桌面目录中创建一个文件夹

Create a folder in any user's Desktop directory if it does not exist

我有一个文件,其中包括在按下按钮时打开特定文件夹的文件。我会将此文件分发给其他用户,因此代码必须知道查看正确的目录:

  1. 查看文件夹是否已经存在,如果存在则打开文件夹
  2. 文件夹不存在则创建,创建后打开

到目前为止,这是我的代码的相关部分:

If Dir("C:\Users\myUsername\Desktop\sampleFolder", vbDirectory) = "" Then
          MkDir "C:\Users\myUsername\Desktop\sampleFolder"
          retVal = Shell("explorer.exe C:\Users\myUsername\Desktop\sampleFolder", vbNormalFocus)
     Else
          retVal = Shell("explorer.exe C:\Users\myUsername\Desktop\sampleFolder", vbNormalFocus)
End If

我的主要问题是我无法弄清楚如何获取将出现在文件路径中的用户的实际用户名 "C:\Users__________\Desktop"

这是正确的方法吗?如果我在代码中插入自己的用户名,代码就可以工作,但我无法找到自动获取用户名的方法,因此代码对最终用户来说很容易。

My main issue is that I can't figure out how to get a user's actual username that would appear in the file path "C:\Users__________\Desktop"

通常,Environ 函数应该可以工作(尽管可能有例外),您也可以稍微压缩一下代码:

Dim username$
Dim myFolder$
username = ENVIRON("username")
myFolder = "C:\Users\" & username & "\Desktop\sampleFolder"

If Dir(myFolder, vbDirectory) = "" Then
     MkDir myFolder
End If

retVal = Shell("explorer.exe " & myFolder, vbNormalFocus)

尝试

Public Sub EnsureDesktopFolderExists(ByVal folderName As String)
    Dim path As String
    path = Environ$("USERPROFILE") & "\Desktop\" & folderName
    If Len(Dir(path, vbDirectory)) = 0 Then MkDir path
End Sub

VBA Environ