2016-02-17 1 views
0

У меня есть таблица с кнопкой сохранения на каждом листе. Кнопки в настоящее время сохраняют листы на рабочем столе любого пользователя в виде файла 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 
+0

мне удалось создать папку, благодаря вашей помощи, но у меня возникли проблемы с сохранением файла в папке. Я обновил сообщение выше с изменениями. – mdillmon

+0

Пожалуйста, не изменяйте свой вопрос. Это делает недействительным исходный вопрос, а также ответы (и усилие!), Которые другие помогли вам. Если у вас есть новый вопрос, задайте новый вопрос с полной информацией, включая КАК код не работает. –

+0

И, кстати, это не должно быть «Выход из функции» в конце. Ваш код не будет работать таким образом. Это должна быть конечная функция. –

ответ

0
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 
+0

, который не будет создавать папку на рабочем столе * текущего пользователя * –

+0

Ahh, хорошо, да, я неправильно понял. – StevenWalker

+0

Обновлено для получения текущего пользователя в учетной записи – StevenWalker

0
mkdir CreateObject("wscript.shell").specialfolders("desktop") & "\MyFolder" 

должен сделать трюк

Смежные вопросы