ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
楼主: lj1226189

[求助] 当前工作薄名为a,另存为当前目录下改名b 代码如何写!谢谢!

[复制链接]

TA的精华主题

TA的得分主题

 楼主| 发表于 2012-8-20 16:59 | 显示全部楼层
比如打开一个工作薄a,加上楼上代码,运行后,当前a工作薄改名成b,仍处于打开状态,当前文件夹内存了一个工作薄名称为a,而我要的是正好相反,就是本身的a工作薄名称不变,而另存的哪个文件名称为b! 还谢楼上再帮我看一下!

TA的精华主题

TA的得分主题

发表于 2012-8-20 17:11 | 显示全部楼层
lj1226189 发表于 2012-8-20 16:59
比如打开一个工作薄a,加上楼上代码,运行后,当前a工作薄改名成b,仍处于打开状态,当前文件夹内存了一个工 ...

你怎么还没明白呢?我也不明白你加了我上述的代码怎么达不到你要的效果呢?难不成你的意思说来绕口,让俺们误解了?罢,解释下代码吧:
thisworkbook.sheets.copy'此句意为以本代码所在工作簿(即你说的a工作簿啦)的工作表为基础拷贝生成一新工作簿,显然,新的工作簿文件名此时应当为BookN的形式
activeworkbook.saveas filiename:=thisworkbook.path & "\" & "b.xls" '上方代码执行后,显然生成的工作簿成为当前工作簿,故activeworkbook已不再是a工作簿了
activeworkbook.close savechanges:=false'既然达到了目的,直接关闭当前工作簿,显然,该工作簿(即b.xls工作簿)被关闭后,a工作簿即成为当前工作簿了,它并没受到影响

最后:一个问题你反反复复地始终在问,却不上你的附件,能解决问题吗?晕死了。

TA的精华主题

TA的得分主题

 楼主| 发表于 2012-8-20 17:33 | 显示全部楼层
感谢你的耐心细致的讲解,有一个情况我没有表述清楚,我的哪个工作薄实际上就是一个程序,有大量的工作表,还有几十窗体,如果用thisworkbook.sheets.copy,工作表拷了,但窗体就没有了,所以我想用的是整个工作薄另存后,另存的工作薄改名,而当前工作薄的名称仍然是原来的不变!

TA的精华主题

TA的得分主题

发表于 2012-8-20 17:41 | 显示全部楼层
本帖最后由 yygpd500 于 2012-8-20 17:50 编辑
lj1226189 发表于 2012-8-20 17:33
感谢你的耐心细致的讲解,有一个情况我没有表述清楚,我的哪个工作薄实际上就是一个程序,有大量的工作表, ...


晕啊晕,果真遮遮掩掩了问题。

答:那就只好用thisworkbook.saveas方法了,若想达到看起来a工作簿在屏幕上不曾有过变动,那就再配以changefileaccess方法

下列代码供参考:

  1. Sub 另存为副本()
  2.     Dim theFullName As String
  3.     theFullName = ThisWorkbook.FullName
  4.     Application.ScreenUpdating = False
  5.     ThisWorkbook.ChangeFileAccess Mode:=xlReadOnly
  6.     ThisWorkbook.SaveAs ThisWorkbook.Path & "" & "b.xls"
  7.     Workbooks.Open theFullName
  8.     Application.ScreenUpdating = True
  9.     ThisWorkbook.Close savechanges:=False
  10. End Sub
复制代码

TA的精华主题

TA的得分主题

 楼主| 发表于 2012-8-20 17:46 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
打个比方这是我的一个示例,原文件太大,这个文件夹内a文件打开后,运行宏jj,后将工作薄另存到当前目前下工文件夹内,并起名b,当前a工作薄仍处于打开状态,文件名仍是a

谢谢!

122.rar

17.49 KB, 下载次数: 17

TA的精华主题

TA的得分主题

发表于 2012-8-20 17:52 | 显示全部楼层

TA的精华主题

TA的得分主题

 楼主| 发表于 2012-8-20 18:14 | 显示全部楼层
14楼代码有点问题!请高手出手相助{:soso_e183:}

TA的精华主题

TA的得分主题

 楼主| 发表于 2012-8-20 20:02 | 显示全部楼层

TA的精华主题

TA的得分主题

 楼主| 发表于 2012-8-20 20:16 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2012-8-20 21:31 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
本帖最后由 lhw78535 于 2012-8-20 21:31 编辑
lj1226189 发表于 2012-8-20 20:16
这么大的论坛!没人帮我??


试试这句行不?
ThisWorkbook.SaveCopyAs ThisWorkbook.Path & "\b.xls"

评分

2

查看全部评分

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

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2025-1-11 05:50 , Processed in 0.024360 second(s), 10 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

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