Excel精英培训网

 找回密码
 注册
数据透视表40+个常用小技巧,让你一次学会!
楼主: hhxq001

[已解决]求文件另存为时,可以自动清除按钮和宏代码的方法

[复制链接]
发表于 2014-7-19 10:23 | 显示全部楼层    本楼为最佳答案   
个人登记表生成2.rar (36.4 KB, 下载次数: 80)

评分

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

查看全部评分

excel精英培训的微信平台,每天都会发送excel学习教程和资料。扫一扫明天就可以收到新教程
回复

使用道具 举报

 楼主| 发表于 2014-7-19 10:28 | 显示全部楼层
zjdh 发表于 2014-7-19 10:23

very good 再次感谢!!!!
回复

使用道具 举报

发表于 2014-7-19 13:19 | 显示全部楼层
其实这个更简单快捷
  1. Sub 备份()
  2.     FN = InputBox("请输入新文件名称", "文件名设置")
  3.     ActiveWorkbook.SaveCopyAs FN & ".xls"
  4.     With Workbooks.Open(ThisWorkbook.Path & "" & FN & ".xls")
  5.         For Each ms In .Sheets(1).Shapes
  6.             ms.Delete
  7.         Next ms
  8.         Application.VBE.ActiveVBProject.VBComponents.Remove Application.VBE.ActiveVBProject.VBComponents("模块1")
  9.         .Close True
  10.     End With
  11. End Sub

复制代码
回复

使用道具 举报

 楼主| 发表于 2014-7-19 17:12 | 显示全部楼层
zjdh 发表于 2014-7-19 13:19
其实这个更简单快捷

我试用这个遇到的问题:

1、不能自由选择保存的路径,
2、保存时出错。
1.png

22.png
回复

使用道具 举报

 楼主| 发表于 2014-7-19 17:20 | 显示全部楼层
本帖最后由 hhxq001 于 2014-7-19 17:26 编辑
zjdh 发表于 2014-7-19 10:23


其实只要这个可以去掉另存成的新表不含sheet2、3就很完美哦,还有就是每次打开关闭备份的文件,总提示是否保存?



3.png

4.png
回复

使用道具 举报

发表于 2014-7-19 21:06 | 显示全部楼层
本帖最后由 zjdh 于 2014-7-19 21:09 编辑
hhxq001 发表于 2014-7-19 17:12
我试用这个遇到的问题:

1、不能自由选择保存的路径,


13 楼的宏在我的电脑中运行正常,出现问题可能是你的电脑环境问题了,唯独没考虑自由选择存放目录。
回复

使用道具 举报

发表于 2014-7-19 21:18 | 显示全部楼层
本帖最后由 zjdh 于 2014-7-19 21:27 编辑
hhxq001 发表于 2014-7-19 17:20
其实只要这个可以去掉另存成的新表不含sheet2、3就很完美哦,还有就是每次打开关闭备份的文件,总提示是 ...


要删除多余的2个表很简单,添加几句语句即可:
Sub TEST()
    Application.ScreenUpdating = False
    Application.DisplayAlerts = False
    Workbooks.Add
    For i = Sheets.Count To 2 Step -1
    Sheets(i).Delete
    Next
    With ThisWorkbook
    ................................
    ActiveWorkbook.Close
    Application.ScreenUpdating = True
    Application.DisplayAlerts = True
End Sub
回复

使用道具 举报

发表于 2014-7-19 21:22 | 显示全部楼层
本帖最后由 zjdh 于 2014-7-19 21:23 编辑

“每次打开关闭备份的文件,总提示是否保存”
是因为你的表2及所有生成的表中F3单元都有一个公式“=TODAY()”,每次打开文件就刷新了一次,当然要问你是否要保存啦!
回复

使用道具 举报

 楼主| 发表于 2014-7-19 22:05 | 显示全部楼层
zjdh 发表于 2014-7-19 21:18
要删除多余的2个表很简单,添加几句语句即可:
Sub TEST()
    Application.ScreenUpdating = False
...

用这段代码没实现,自己加了一段,也行了。

个人登记表生成-另存时自动清理宏代码0719.zip (51.38 KB, 下载次数: 42)
回复

使用道具 举报

发表于 2014-7-19 22:20 | 显示全部楼层
hhxq001 发表于 2014-7-19 22:05
用这段代码没实现,自己加了一段,也行了。

你这2段代码有局限性,若系统设置为4个或更多的表就不行啦!
未命名.JPG
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-4 02:06 , Processed in 0.321712 second(s), 11 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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