编辑宏以在桌面上为任何用户创建文件夹
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 - 组合宏以重命名工作表和宏以在一个宏中合并工作表