请教网络牛人!EXCEL 函数(另存为)
答案:3 悬赏:70 手机版
解决时间 2021-06-04 02:25
- 提问者网友:抽煙菂渘情少年
- 2021-06-03 19:56
想做一个excel 关闭的时候自动另存为的 宏
知识有限,请教excel 能手,
Private Sub Workbook_Close()
Sub saveit()
Application.DisplayAlerts = False
ActiveWorkbook.SaveCopyAs "F:\★调价单★\" & Format(Now, "yyyy.mm.dd") & ".xls"
End Sub
以上的宏 是可以另存为 但是不是自动 (关闭的时候自动另存为)
好了,这里重新一下这个 宏 的功能,如有不清晰麻烦说明下
1.关闭该excel时候 自动另存为 不用提示!
2.另存为指定的路径
3.另存为时 检测是否存在 当前日期yyyy.mm 的文件夹 没有的话自动创建
4.保存到 指定路径下 yyyy.mm 的文件夹内 命名为 yyyy.mm.dd 的文件名
5.检测有 yyyy.mm.dd 同名 的excel 文件时,在文件后加-1 即(2009.01.01-1)
功能上如果有什么缺点,\者 有更好的想法也可以提议下,谢谢!
最佳答案
- 五星知识达人网友:拾荒鲤
- 2021-06-03 20:02
如 渔舟怅晚 的图示,双击 Thisworkbook,粘贴如下代码:
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Dim i As Byte
ChDrive "F:"
ChDir "F:\★调价单★\"
If Dir(Format(Date, "yyyy.mm")) & "\" = "" Then MkDir Format(Date, "yyyy.mm")
ChDir Format(Date, "yyyy.mm")
If Dir(Format(Date, "yyyy.mm.dd") & ".xls") = "" Then
ThisWorkbook.SaveAs Format(Date, "yyyy.mm.dd") & ".xls"
Else
For i = 1 To 100
If Dir(Format(Date, "yyyy.mm.dd") & "-" & i & ".xls") = "" Then
ThisWorkbook.SaveAs Format(Date, "yyyy.mm.dd") & "-" & i & ".xls"
Exit Sub
End If
Next i
End If
End Sub
实现你要求的功能,且找到-1的文件会另存为-2的文件,...,一直到-100
全部回答
- 1楼网友:春色三分
- 2021-06-03 21:18
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Dim i%, p$, d$, f$
p = "d:\" '指定的路径
d = Format(Now, "yyyy.mm")
f = p & d & "\" & Format(Now, "yyyy.mm.dd")
If Dir(p & d, 16) = "" Then MkDir p & d
If Dir(f & ".xls") = "" Then
ThisWorkbook.SaveAs f & ".xls"
Else
Do
i = i + 1
If Dir(f & "-" & i & ".xls") = "" Then ThisWorkbook.SaveAs f & "-" & i & ".xls": Exit Do
Loop
End If
End Sub
你的代码位置没放对。
应该放在THISWORKBOOK下的,WORKBOOK---BEFORECLOSE,这个是系统自带的,宏名称不能修改的。
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Application.DisplayAlerts = False
ActiveWorkbook.SaveCopyAs "F:\★调价单★\" & Format(Now, "yyyy.mm.dd") & ".xls"
Application.DisplayAlerts = True
End Sub
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯