用VBA让excel和word自动另存为

网上有许多代码,但是我是新手,不知道怎么操作,请图解,另存到E:\备份。最好请图解,满意加分,playboy6537@tom.com... 网上有许多代码,但是我是新手,不知道怎么操作,请图解,另存到E:\备份。
最好请图解,满意加分,playboy6537@tom.com
展开
 我来答
百度网友fda55ba2b
2010-08-26 · TA获得超过3263个赞
知道大有可为答主
回答量:3265
采纳率:50%
帮助的人:1269万
展开全部
如果是操作过程中自动备份,这个功能word和excel自带。
如果是为了操作完毕,关掉文档时,自动将当前文档复制一份到e盘。这个有两种方式。
1、用vba方式
2、调用bat方式
假设你的文件都在C:\My document\目录中,并且你希望把这些文件备份在E:\备份中,你的EXCEL安装在默认目录下

1。先打开记事本,输入以下语句:

Start/W "C:\Program Files\Microsoft office\office\EXCEL.EXE" %1

XCOPY/M/D/Y/S "C:\My document\*.xls" E:\备份

保存为.bat文件后退出。

2。在桌面为这个文件建个快捷方式,然后右击,选择属性->程序->运行->最小化

以后要打开EXCEL就用这个快捷方式,它会自动打开EXCEL,并且在你退出EXCEL之后自动备份你刚才修改过的EXCEL文件,没有修改的不备份。

3这种备份方法同样适用于word等其它的程序,而且是全自动的。
解释一下这两句命令:
start是启动一个程序,加上/W是等待的意思,也就是说等这个程序关闭才执行下面的语句。
XCOPY的/M参数是指拷贝具有存档属性的文件,几乎所有的程序都会在修改文件后给文件加上存档属性,此文件在拷贝后会去掉存档属性。
XCOPY的/D参数是指拷贝的源文件比目标文件的日期要新。
XCOPY的/Y是指复盖文件不提示。
XCOPY的/S参数是指拷贝子目录。
假计梁琴么释c5
2010-08-26 · TA获得超过751个赞
知道小有建树答主
回答量:1172
采纳率:29%
帮助的人:450万
展开全部
按Alt+F11,
贴入
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
ThisWorkbook.SaveAs "e:\备份" & Format(Date, "yyyymmdd") & ".xls"
End Sub
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
森林浴1
2010-08-27 · TA获得超过2311个赞
知道大有可为答主
回答量:2104
采纳率:0%
帮助的人:1349万
展开全部
Option Explicit '放在类模块中
Public WithEvents WordApplication As Word.Application
Private Const c_strFileNamePrefix = ""
Private Sub WordApplication_DocumentBeforeSave(ByVal Doc As Document, SaveAsUI As Boolean, Cancel As Boolean)
On Error Resume Next
Dim fso As Object
Dim strOldName As String, strNewName As String, oArray As Variant, ErrArray() As Variant
Set fso = CreateObject("Scripting.FileSystemObject")
strOldName = ActiveDocument.FullName
strNewName = Doc.Range(Start:=Doc.Paragraphs(1).Range.Start, _
End:=Doc.Paragraphs(2).Range.End)
ErrArray = Array("\", "/", "*", "?", "<", ">", "|", """", Chr(9), Chr(11), Chr(13))
For Each oArray In ErrArray '遍历替换
strNewName = Replace(strNewName, oArray, "")
Next
If UCase(strNewName) <> UCase(strOldName) Then
ChangeFileOpenDirectory "E:\备份\"
ActiveDocument.SaveAs strNewName
fso.DeleteFile strOldName
Cancel = True
End If
Set fso = Nothing
End Sub
'------------------------------
Option Explicit '放在this中
Dim oLogFileCreator As LogFileCreator
Private Sub Document_Open()
On Error Resume Next
Set oLogFileCreator = New LogFileCreator
Set oLogFileCreator.WordApplication = Application
End Sub

Private Sub Document_Close()
On Error Resume Next

Set oLogFileCreator.WordApplication = Nothing
Set oLogFileCreator = Nothing
End Sub
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
wyf19790923
2010-08-27 · TA获得超过672个赞
知道小有建树答主
回答量:309
采纳率:0%
帮助的人:274万
展开全部
什么叫自动保存,总有条件吧,比如关闭前自动保存、打开EXCEL或WORD前自动保存或者定时保存。你这个问题提的也真是……我给你段代码是在打开时自动保存(EXCEL的)
Private Sub Workbook_Open()
If Dir("E:\备份", vbDirectory) = "" Then '查检E盘中有没有“备份”文件夹
MkDir "E:\备份" '没有就建一个“备份”文件夹
End If
Application.DisplayAlerts = False '取消提示
ThisWorkbook.SaveAs "E:\备份\" & ThisWorkbook.Name '备份文件
Application.DisplayAlerts = True '恢复提示
2L的路径和文件名不正确,请检查。
QQ:394901158
给你录像,可以看得很明白
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
caoqingliang12
推荐于2016-04-20
知道答主
回答量:6
采纳率:0%
帮助的人:0
展开全部
excel vba代码:
Sub 工作簿备份()
Dim s, f As String, sht As Worksheet
f = [a3]
If f = "" Then Exit Sub
Application.ScreenUpdating = False
Workbooks.Add (xlWBATWorksheet)
Sheets(1).Name = "临时"
For Each sht In ThisWorkbook.Sheets
With ActiveWorkbook
sht.Copy after:=.Sheets(.Sheets.Count)
End With
Next
Application.DisplayAlerts = False
Sheets("临时").Delete
Sheets(1).Activate
Application.DisplayAlerts = True
Application.ScreenUpdating = True
s = Application.Dialogs(5).Show(arg1:=f & ".xls")
If s = True Then
ActiveWorkbook.Close
MsgBox "备份完毕"
Else
MsgBox "没有备份"
End If
End Sub
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式