我正在尝试编写一个脚本,该脚本从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。
答案 0 :(得分:0)
我相信问题就在这里
MkDir strDefpath & "\" & strYear & "\" & strDirname
您想要创建一个子目录,而该子目录本身甚至不存在。
尝试以下操作:
MkDir strDefpath & "\" & strYear
MkDir strDefpath & "\" & strYear & "\" & strDirname