如果不存在,请在任何用户的“桌面”目录中创build一个文件夹

我有一个文件,其中包括,当按下button时打开一个特定的文件夹。 我将分发这个文件给其他用户,所以代码必须知道要查看正确的目录:

  1. 看看文件夹是否已经存在,如果存在,打开文件夹
  2. 如果该文件夹不存在,请创build该文件夹,并在创build后将其打开

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

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 

我的主要问题是,我不知道如何获得用户的实际用户名,将出现在文件path“C:\用户__________ \桌面”

这甚至是正确的方法吗? 如果我将自己的用户名插入代码中,代码将起作用,但是我无法弄清楚自动获取用户名的方式,因此代码对于最终用户来说很简单。

尝试

 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环境

我的主要问题是,我不知道如何获得用户的实际用户名,将出现在文件path“C:\用户__________ \桌面”

一般来说, Environ函数应该可以工作(尽pipe可能有例外),也可以简化一下代码:

 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) 
Interesting Posts