根据单元格值创建目录(如果不存在)并保存工作簿

时间:2019-04-30 08:40:28

标签: excel vba

我正在尝试编写一个脚本,该脚本从2个单元格获取值,如果还没有目录,请建立目录,并使用另一个单元格的值保存文件。

我从以下线程中的代码开始:Save excel Workbook in a new created folder with the Same names,并根据我的需要调整了代码,使其适合我的需求,但是我是VBA的新手...我的代码正确现在看起来像这样:

Sub SAVE()
Dim strFilename, strDirname, strPathname, strDefpath, strYear As String
 On Error Resume Next ' If directory exist goto next line

strFilename = Range("B2").Value 'New file name
strDirname = Range("B3").Value ' New directory name
strYear = Range("B4").Value 'New year name
strDefpath = "P:\PPE\Urenverwerking" 'Default path name

If IsEmpty(strDirname) Then Exit Sub
If IsEmpty(strFilename) Then Exit Sub
If IsEmpty(strYear) Then Exit Sub

MkDir strDefpath & "\" & strYear & "\" & strDirname
strPathname = strDefpath & "\" & strYear & "\" & strDirname & "\" & strFilename 'create total string

ActiveWorkbook.SaveAs Filename:=strPathname & ".xlsm", _
FileFormat:=xlOpenXMLWorkbookMacroEnabled
End Sub

这导致代码被运行(等待光标显示),但是什么也没有发生,而我希望在P:\ PPE \ Urenverwerking \ 2019中有一个新目录,文件名为B2。

1 个答案:

答案 0 :(得分:0)

我相信问题就在这里

MkDir strDefpath & "\" & strYear & "\" & strDirname

您想要创建一个子目录,而该子目录本身甚至不存在。

尝试以下操作:

MkDir strDefpath & "\" & strYear
MkDir strDefpath & "\" & strYear & "\" & strDirname