用VBA自动备份EXCEL到指定地方
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
工作中,数据是非常重要的。当我们的Excel表格往往含有重要数据,备份它的重要性不言而喻。虽然Excel已经为我们提供了自带的备份功能,但备份的文件与原文件处于同一文件夹中,如果该文件夹被误删除,后果不堪设想。那么有没有方法让Excel在不同的文件夹自动生成备份呢?
我们可以用VBA编写简单的宏代码来实现备份功能,同时还能做到:
1、在保存Excel文件时自动生成备份;
2、保存Excel文件时提示是否备份;
3、原始文件和备份文件互为备份。即编辑原始文件时,将在备份文件夹生成备份文件;编辑备份文件时,将以原始文件为备份。
一、设置宏安全性
选择“工具”→“宏”→“安全性”菜单,将安全级别设为“低”。这样,VBA代码才可以执行。
二、输入VBA代码
1、打开需要备份的Excel文件,右击任一工作表标签,选择“查看代码”,或选择“工具”→“宏”→“Visual Basic编辑器”菜单,打开Visual Basic编辑器。
2、在“工程”窗口中双击“ThisWork book”,此时VBA编辑器标题变为:Microsoft Viusal Basic-“文件名”-[ThisWorkbook(代码)]。
3、将以下代码输入到“代码”窗口中:
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean) '指定Excel文件的路径
XlsFilePath = "D:"
'指定备份路径
BackupXlsFilePath = "E:"
If ThisWorkbook.Path = XlsFilePath Then
ExcelFilePath = BackupXlsFilePath
Else
End If
'提示是否备份
Response = MsgBox("保存时是否备份当前Excel文件?" & vbCr & "备份位置:" & ExcelFilePath, vbYesNo, "提示备份")
If Response = vbYes Then ' 用户按下“是”
'两个Excel文件相互备份
ThisWorkbook.SaveCopyAs Filename:=ExcelFilePath & "\" & End If
End Sub
说明:XlsFilePath = "D:"和Backup XlsFilePath = "E:"分别指定了正在编辑的Excel 文件和备份文件的路径,可以将其中的“D:”和“E:”(不含引号)分别更换成实际的路径。(Excel技巧)在输入文件路径时一定要注意以下几点:
1、确保路径正确无误,如果输入错误或指定的文件夹不存在,将出现错误;
2、盘符要大写;
3、路径的后面不要加上“\”,如“F:\备份\2006”不能写成“F:\备份\2006\”。
三、执行
当前Excel文件编辑完成后,只要单击“保存”按钮,Excel都会提示是否备份。选择“是”将在指定的文件夹生成一个同名的备份文件,并保存当前文件。选择“否”则只保存当前文件而不做备份。
后记,保存是时候弹出一个对话框,EXCEL提示是否备份,选择是,自动备份到你写代码的那个盘,这时又弹出一个对话框,关于删除什么个人信息的。这个不用管它。不喜欢这个框的话,在“工具”——“选项”——“安全性”,找到“保存时从文件属性中删除个人信息(R)”,把这个信息的勾取消了哦。。记住“取消”哦。。。这样你就可以备份自如了。。很好用吧。。。
在上好网经过自己的试验,验证可行。经自己整理分享给大家。