Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用工作簿时VBA代码中断。添加(模板)_Vba_Excel - Fatal编程技术网

使用工作簿时VBA代码中断。添加(模板)

使用工作簿时VBA代码中断。添加(模板),vba,excel,Vba,Excel,我试图创建一个新的工作簿作为现有Excel文件的模板,但遇到了一些困难。在这项任务完成之前,一切正常: Set wkb = Workbooks.Add(Path & FileName) 'do next stuff 新工作簿将创建,但代码将在没有任何错误消息的情况下中断,并且VBE项目窗口将激活。该模板是一个宏启用文件,具有userform。任何关于如何解决这个问题的建议都将不胜感激 更新: Path = ThisWorkbook.Path & "\" StrFile = Di

我试图创建一个新的工作簿作为现有Excel文件的模板,但遇到了一些困难。在这项任务完成之前,一切正常:

Set wkb = Workbooks.Add(Path & FileName)
'do next stuff
新工作簿将创建,但代码将在没有任何错误消息的情况下中断,并且VBE项目窗口将激活。该模板是一个宏启用文件,具有userform。任何关于如何解决这个问题的建议都将不胜感激

更新:

Path = ThisWorkbook.Path & "\"
StrFile = Dir(Path & "*2014*")
Do While Len(StrFile) > 0
    NewFile = StrFile
    StrFile = Dir
    i = i + 1
Loop
Set wkb = Workbooks.Add(Path & NewFile)
wkb.SaveAs Filename:=Path & "0" & i + 1 & "=" & Format(Dateserial(2014,i +1,1), "mmmm") & "=2014.xlsm"
试一试


内特,谢谢。我当然考虑过这个解决方案。但是我想用模板技术在那里取得成功。@Mormoch你能在你的代码行前后发布一点代码吗。此外,当您说它在没有任何错误消息的情况下中断时,当VBE项目窗口激活时,是否有任何一行以黄色高亮显示?如果是,哪一个?我更新了我的问题并输入了代码。没有行是高位的。在子行的前面是否有“错误恢复下一步”?如果是,请删除该代码以查看是否确实出现错误?第二,子系统是否一直运行到最后?在其末尾添加Msgbox(“test”),以查看是否收到该消息。如果没有,请一直把它放在一行上,直到你真正得到弹出窗口,这将告诉我们到底哪一行是问题所在。@Nate我没有“On Error”语句。按照您的建议放置一个
MsgBox wkb.Name
,什么都不会发生。我还删除了
Displayalerts
语句,然后出现一个对话框:“是否要重新打开文件”等。单击“确定”,新文件将创建一个名为模板的文件,并在名称的和处加上1,但msgbox未完成。
Set wbk = Workbooks.Add
wbk.Name = Filename
wbk.Save...... (put filepath etc etc here).