Excel精英培训网

 找回密码
 注册
数据透视表40+个常用小技巧,让你一次学会!
查看: 15222|回复: 10

[已解决]如何在工作簿保存时自动改名成指定的名称

[复制链接]
发表于 2012-11-9 20:05 | 显示全部楼层 |阅读模式
一个工作簿(不是新建的),如何在关闭时,自动把工作簿重命名成新名字(假设为123吧)?不是另存为,是把原工作簿重命名
最佳答案
2012-11-9 21:39
本帖最后由 zjdh 于 2012-11-9 21:49 编辑

Private Sub Workbook_BeforeClose(Cancel As Boolean)
    Application.DisplayAlerts = False
    Application.EnableEvents = False
    ThisWorkbook.SaveCopyAs ThisWorkbook.Path & "\123.xls"
    ThisWorkbook.ChangeFileAccess xlReadOnly
    Kill ThisWorkbook.FullName
    ThisWorkbook.Close False
    Application.EnableEvents = True
End Sub
ABC.rar (7.82 KB, 下载次数: 99)
excel精英培训的微信平台,每天都会发送excel学习教程和资料。扫一扫明天就可以收到新教程
发表于 2012-11-9 20:22 | 显示全部楼层
你希望的目的很奇怪,为什么要这样?
假如可以实现,那和另存为123,并删除原文件,有何不同呢?
回复

使用道具 举报

 楼主| 发表于 2012-11-9 20:30 | 显示全部楼层
爱疯 发表于 2012-11-9 20:22
你希望的目的很奇怪,为什么要这样?
假如可以实现,那和另存为123,并删除原文件,有何不同呢?

没啥不同{:011:}  
回复

使用道具 举报

发表于 2012-11-9 20:58 | 显示全部楼层
本帖最后由 zjdh 于 2012-11-9 21:02 编辑

这个要求有点怪。                      .
回复

使用道具 举报

发表于 2012-11-9 21:09 | 显示全部楼层
Private Sub Workbook_BeforeClose(Cancel As Boolean)
    Dim p As String
    Dim oldfile As String
    Dim newfile As String
    With Me
        p = .Path & "\"
        oldfile = .Name
        newfile = "123.xls"
        '另存为123.xls
        Application.DisplayAlerts = False
        .SaveAs p & newfile
        .ChangeFileAccess xlReadOnly
        '删除源文件,但不删除123.xls
        Debug.Print Dir(p & oldfile)
        If oldfile <> newfile Then Kill p & oldfile
    End With   
End Sub
1.rar (8.5 KB, 下载次数: 27)

评分

参与人数 1 +1 收起 理由
d346836673 + 1 很给力

查看全部评分

回复

使用道具 举报

发表于 2012-11-9 21:39 | 显示全部楼层    本楼为最佳答案   
本帖最后由 zjdh 于 2012-11-9 21:49 编辑

Private Sub Workbook_BeforeClose(Cancel As Boolean)
    Application.DisplayAlerts = False
    Application.EnableEvents = False
    ThisWorkbook.SaveCopyAs ThisWorkbook.Path & "\123.xls"
    ThisWorkbook.ChangeFileAccess xlReadOnly
    Kill ThisWorkbook.FullName
    ThisWorkbook.Close False
    Application.EnableEvents = True
End Sub
ABC.rar (7.82 KB, 下载次数: 99)
回复

使用道具 举报

发表于 2013-11-4 13:03 | 显示全部楼层
zjdh 发表于 2012-11-9 21:39
Private Sub Workbook_BeforeClose(Cancel As Boolean)
    Application.DisplayAlerts = False
    Appl ...

楼上的达人好:
        我工作时也需要这个操作。但看到回复里只有一段代码,我不知道如何把这段代码加在哪,还请帮忙详细说一下可以吗?我是菜鸟,所以想请您尽量说下,谢谢!
回复

使用道具 举报

发表于 2016-5-24 10:49 | 显示全部楼层
实践了哈   6楼的没得5楼的好用,6楼的第2次打开会出现点小问题希望可以优化哈,测试环境   win10   office2016.
回复

使用道具 举报

发表于 2017-9-9 21:36 | 显示全部楼层
我是菜鸟,求救,我做了个EXCEL模板每次新建文件后,如何在保存这个文件的时候能自动生成EXCEL里的筛选出的组合来命名呢,这样我每次建立的时候都不用再去命名了,谢谢
回复

使用道具 举报

发表于 2017-9-9 21:46 | 显示全部楼层
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|Excel精英培训 ( 豫ICP备11015029号 )

GMT+8, 2024-4-20 04:07 , Processed in 0.547935 second(s), 13 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表