【问题标题】:Edit Macro to create folder on desktop for any user编辑宏以在桌面上为任何用户创建文件夹
【发布时间】:2016-02-17 15:07:47
【问题描述】:

我有一个电子表格,每张纸上都有一个保存按钮。这些按钮当前将工作表作为 PDF 文件保存到任何用户的桌面上。有人问我是否可以让按钮在执行此操作时在桌面上创建一个名为“BSInHouseAssets”的新文件夹。我猜我们会在某个时候使用 MKdir ......但我需要帮助。 这是保存文件的宏的当前部分。

Function SpecialFolderPath() As String

  Dim objWSHShell As Object
  Dim strSpecialFolderPath

  'On Error GoTo ErrorHandler
  ' Create a shell object
  Set objWSHShell = CreateObject("WScript.Shell")
  ' Find out the path to the passed special folder,
  '  just change the "Desktop" for one of the other options
  SpecialFolderPath = objWSHShell.SpecialFolders("desktop")
  ' Clean up
  Set objWSHShell = Nothing
  Exit Function
ErrorHandler:

  MsgBox "Error finding " & strSpecialFolder, vbCritical + vbOKOnly, "Error"
End Function

【问题讨论】:

  • 感谢您的帮助,我成功创建了文件夹,但我无法将文件保存到文件夹中。我用更改更新了上面的帖子。
  • 请不要更改您的问题。这会使原始问题以及其他人为帮助您而提供的答案(和努力!)无效。如果您有新问题,请提出一个新问题,并提供完整信息,包括代码如何无法正常工作。
  • 顺便说一句:最后不应该是“退出函数”。你的代码不会那样工作。应该是结束函数。

标签: excel vba save create-directory


【解决方案1】:
mkdir CreateObject("wscript.shell").specialfolders("desktop") & "\MyFolder"

应该做的伎俩

【讨论】:

    【解决方案2】:
    strPath = "C:\Users\" & Environ("UserName") & "\Desktop\"
    strFolderName = "test1"
    strFullPath = strPath & strFolderName & "\"
    
        If Dir(strPath & strFolderName, vbDirectory) = "" Then
        MkDir strFullPath
        End If
    
    ActiveWorkbook.SaveAs Filename:=strFullPath & "workbookname1", _
    FileFormat:=xlOpenXMLWorkbookMacroEnabled
    

    【讨论】:

    • 不会在当前用户的桌面上创建文件夹
    • 更新以考虑当前用户
    • 这非常适合创建文件夹,谢谢。但是,出于某种原因,它没有将文档保存在该文件夹中。
    • 保存在哪里?你有任何错误吗?如果有机会,请尝试将 .xlsm 添加到文件名中。也只是看到你编辑的代码,你声明了路径字符串吗?在strPath中的桌面后添加\。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-03-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-04-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多