我的目标:让Excel将工作簿的副本保存在与工作簿所在的原始文件夹不同的文件夹中,并保存时间戳。
此代码正确运行:
Private Sub Workbook_BeforeClose(Cancel As Boolean)
ThisWorkbook.SaveCopyAs Replace(ThisWorkbook.FullName, ".xlsm", " _
(" & Format(Now, "yyyy-mm-dd hhmm") & ").xlsm")
End Sub
但是这段代码根本没有运行。每次关闭工作簿时都会收到错误1004:
Private Sub Workbook_BeforeClose(Cancel As Boolean)
ThisWorkbook.SaveCopyAs (ThisWorkbook.Name & Format(Now, "yyyy-mm-dd hh:mm"))
End Sub
尝试使用第二个代码关闭工作簿时收到的消息:http://prntscr.com/8iiyyd
答案 0 :(得分:2)
冒号阻止Windows保存文件,加上扩展名会很奇怪,加上这样的时间戳。 您的代码将生成以下文件名: Try.xlsm2015-09-22 15:37
您还需要提供文件夹位置。
也许你可以试试这个:
ThisWorkbook.SaveCopyAs" c:\ folder \" &安培;替换(ThisWorkbook.Name," .xl",格式(现在()," yyyy-mm-dd hhmm")&" .xl")
您当然可以指定自己的文件夹。
如果要将其放在相对于当前文件位置的子文件夹中,请使用以下命令:
ThisWorkbook.SaveCopyAs Thisworkbook.Path & "\subfolder\" & Replace(ThisWorkbook.Name, ".xl", Format(Now(), "yyyy-mm-dd hhmm") & ".xl")
您当然可以指定自己的子文件夹
希望这有帮助
答案 1 :(得分:1)
我设法解决了我的问题。我不想在第二个代码中使用Replace(我希望用另一个代码实现相同的功能)。
这是修复后的代码:
Private Sub Workbook_BeforeClose(Cancel As Boolean)
ThisWorkbook.SaveCopyAs "C:\Users\Korisnik\Box Sync\" & Format(Now, "yyyy-mm-dd hhmm") & ThisWorkbook.Name
End Sub
现在一切正常, 非常感谢