编辑宏以在桌面上为任何用户创建文件夹

Posted

技术标签:

【中文标题】编辑宏以在桌面上为任何用户创建文件夹【英文标题】: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

【问题讨论】:

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

以上是关于编辑宏以在桌面上为任何用户创建文件夹的主要内容,如果未能解决你的问题,请参考以下文章

Excel VBA - 组合宏以重命名工作表和宏以在一个宏中合并工作表

扩展宏以进行调试?

如何在 WIX 中为所有用户创建桌面快捷方式

创建SAS宏以处理任意数量的变量

如何在 libreoffice calc 中编写 python 宏以在插入外部数据时处理合并的单元格

创建一个bat文件以在Windows上运行raspberry pi命令