【问题标题】:Create a general path for shared file为共享文件创建通用路径
【发布时间】:2015-05-01 15:00:35
【问题描述】:

我正在尝试使用文件对话框来选择文件并将其保存到文件夹中,但我不知道如何编写文件夹路径并不断收到“找不到路径错误” 我根本不是程序员,所以请用简单的英语解释:)

以下是我尝试使用但不起作用的一段代码。

ArchiveFolderPath = Environ("UserDomain") & "\" & Environ("username") & "\Desktop"

来自下面评论的完整子代码:

Sub CreateCopyFile(FilePathToCopy As String)
    Dim fso As Scripting.FileSystemObject
    Dim FileToCopy As Scripting.File
    Dim ArchiveFolderPath As String

    'Create a new folder path
    Set fso = New Scripting.FileSystemObject
    ArchiveFolderPath = Environ("UserProfile") & "\Desktop\Archive"

    'Create a new folder
    If Not fso.FolderExists(ArchiveFolderPath) Then
        fso.CreateFolder ArchiveFolderPath
    End If

    Set FileToCopy = fso.GetFile(FilePathToCopy)
    FileToCopy.Copy ArchiveFolderPath & "\" & FileToCopy.name
    Set fso = Nothing
End Sub

【问题讨论】:

  • 这是我所拥有的不起作用。免责声明:代码不是我的 Sub CreateCopyFile(FilePathToCopy As String) Dim fso As Scripting.FileSystemObject Dim FileToCopy As Scripting.File Dim ArchiveFolderPath As String 'Create a new文件夹路径 Set fso = New Scripting.FileSystemObject ArchiveFolderPath = Environ("UserProfile") & "\Desktop\Archive" '创建一个新文件夹 If Not fso.FolderExists(ArchiveFolderPath) Then fso.CreateFolder ArchiveFolderPath End If Set FileToCopy = fso.GetFile (FilePathToCopy) FileToCopy.Copy ArchiveFolderPath & "\" & FileToCopy.Name Set fso = Nothing End Sub
  • 我刚刚对其进行了测试,您的代码(正如我在您上面的问题中安排的那样)在具有正确文件/文件夹权限的用户的本地计算机上运行良好。如果您有文件/文件夹权限问题,请联系计算机管理员寻求指导。

标签: excel vba


【解决方案1】:

尝试在单词“Desktop”的末尾添加另一个反斜杠,并在路径的最开头添加两个反斜杠。像这样:

ArchiveFolderPath = "\\" & Environ("UserDomain") & "\" & Environ("username") & "\Desktop\"

【讨论】:

    【解决方案2】:

    您需要在Desktop 的末尾加上另一个\,然后确保在保存时将文件名放在后面。

    所以看起来像ArchiveFolderPath = Environ("UserDomain") & "\" & Environ("username") & "\Desktop\"

    【讨论】:

    • 您需要确保文件夹的任何末尾都有一个 \ 在它的末尾
    【解决方案3】:

    您正在寻找的某些内容将取决于操作系统。在 Windows 7 中,有一个公共桌面填充所有用户桌面并具有相当开放的文件权限。它位于:

    c:\Users\Public\Desktop

    如果那是你想放东西的地方,那么你的代码就是其中之一,

    ArchiveFolderPath = "c:\Users\Public\Desktop"
    ArchiveFolderPath = Environ("PUBLIC") & "\Desktop"
    

    如果您想指向当前用户的桌面,那么这就是其中之一,

    ArchiveFolderPath = "c:\Users\" & Environ("USERNAME") & "\Desktop"
    ArchiveFolderPath = Environ("USERPROFILE") & "\Desktop"
    

    您使用的环境变量 (`Environ("USERDOMAIN")) 通常指向工作组环境中的计算机名称,尽管它在结构化 Active Directory 网络中会有所不同。

    请记住尽可能使用环境变量,以避免系统操作系统版本之间的硬编码路径发生变化。 XP 机器的用户配置文件与 Windows 7 或 Windows 8 机器不同。

    在当前会话中获取环境变量列表的一种快速简便的方法是打开命令提示符窗口并输入SET,然后按Enter

    【讨论】:

    • 它说权限被拒绝
    猜你喜欢
    • 2020-01-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-06-10
    • 2021-03-23
    • 2023-03-27
    • 2019-11-22
    相关资源
    最近更新 更多