如何将工作表单独保存另存为一个新工作薄

查看: 1575|回复: 2
[已解决]excel2007带宏工作薄中的SHTTE1工作表另存为不带宏的以日期为文件名了新工作薄
本帖最后由 ndyzx 于
22:10 编辑
我有一个excel2007带宏工作薄(后缀名为XLSM),我想把其中的SHTTE1工作表另存为不带宏的以日期为文件名了新工作薄.不知VBA怎么写.
& && &主要问题是:1、老提示“无法在未启用宏的工作薄中保存一下功能.....”,估计是另存是新建的以日期为名的工作薄未启用宏;2、保存后的新的以日期为文件名的工作薄要求不能有原工作薄中写的VBA内容(宏)。在网上找了很久,找不到解决办法,特再指教,望老师们帮助,先谢了。以下办法在2003可以,2007不行。Private Sub CommandButton4_Click()
Dim nm, i&, wb As Workbook, wbnm$, myWb As Workbook
Set myWb = ThisWorkbook
nm = Array(&sheet1&)
For i = 0 To UBound(nm)
& & If i = 0 Then
& && &&&myWb.Sheets(nm(i)).Copy
& && &&&Set wb = ActiveWorkbook
& && &&&wbnm = &备份& & Format(Now, &YYYYMMDD&)
& & Else
& && &&&myWb.Sheets(nm(i)).Copy after:=wb.Sheets(wb.Sheets.Count)
& & End If
Next
On Error GoTo line
wb.SaveAs ThisWorkbook.Path & &\& & wbnm & &.xls&
line: wb.Close savechanges:=False
& & MsgBox &操作完成! &, 64, &提示:&
End Sub复制代码
zjdh发布于
Private Sub CommandButton4_Click()
& & Dim nm, i&, wb As Workbook, wbnm$, myWb As Workbook
& & Set myWb = ThisWorkbook
& & nm = Array(&sheet1&)
& & For i = 0 To UBound(nm)
& && &&&If i = 0 Then
& && && && &myWb.Sheets(nm(i)).Copy
& && && && &Set wb = ActiveWorkbook
& && && && &wbnm = &备份& & Format(Now, &YYYYMMDD&)
& && &&&Else
& && && && &myWb.Sheets(nm(i)).Copy after:=wb.Sheets(wb.Sheets.Count)
& && &&&End If
& & On Error GoTo line
& & wb.SaveAs ThisWorkbook.Path & &\& & wbnm & &.xlsx&
line:& &&&wb.Close savechanges:=False
& & MsgBox &操作完成! &, 64, &提示:&
&&&本楼为最佳答案&&&
Private Sub CommandButton4_Click()
& & Dim nm, i&, wb As Workbook, wbnm$, myWb As Workbook
& & Set myWb = ThisWorkbook
& & nm = Array(&sheet1&)
& & For i = 0 To UBound(nm)
& && &&&If i = 0 Then
& && && && &myWb.Sheets(nm(i)).Copy
& && && && &Set wb = ActiveWorkbook
& && && && &wbnm = &备份& & Format(Now, &YYYYMMDD&)
& && &&&Else
& && && && &myWb.Sheets(nm(i)).Copy after:=wb.Sheets(wb.Sheets.Count)
& && &&&End If
& & On Error GoTo line
& & wb.SaveAs ThisWorkbook.Path & &\& & wbnm & &.xlsx&
line:& &&&wb.Close savechanges:=False
& & MsgBox &操作完成! &, 64, &提示:&
zjdh 发表于
Private Sub CommandButton4_Click()
& & Dim nm, i&, wb As Workbook, wbnm$, myWb As Workbook
& & Set ...
谢谢指导,已解决了。
Powered by2009年4月 VB大版内专家分月排行榜第三2007年10月 VB大版内专家分月排行榜第三
2009年4月 VB大版内专家分月排行榜第三2007年10月 VB大版内专家分月排行榜第三
2009年4月 VB大版内专家分月排行榜第三2007年10月 VB大版内专家分月排行榜第三
2009年4月 VB大版内专家分月排行榜第三2007年10月 VB大版内专家分月排行榜第三
本帖子已过去太久远了,不再提供回复功能。君,已阅读到文档的结尾了呢~~
最全的事业单位考试计算机基础知识试题14106
扫扫二维码,随身浏览文档
手机或平板扫扫即可继续访问
最全的事业单位考试计算机基础知识试题14106
举报该文档为侵权文档。
举报该文档含有违规或不良信息。
反馈该文档无法正常浏览。
举报该文档为重复文档。
推荐理由:
将文档分享至:
分享完整地址
文档地址:
粘贴到BBS或博客
flash地址:
支持嵌入FLASH地址的网站使用
html代码:
&embed src='/DocinViewer--144.swf' width='100%' height='600' type=application/x-shockwave-flash ALLOWFULLSCREEN='true' ALLOWSCRIPTACCESS='always'&&/embed&
450px*300px480px*400px650px*490px
支持嵌入HTML代码的网站使用
您的内容已经提交成功
您所提交的内容需要审核后才能发布,请您等待!
3秒自动关闭窗口将多个工作表保存为单独的工作簿 | VBA实例教程
我的图书馆
将多个工作表保存为单独的工作簿 | VBA实例教程
除非注明,文章均为原创,转载请保留链接: ,VBA交流群。
今天我们来讲另一个案例。假设你手上有一个工作簿,里面包含了N多的工作表,现在由于工作需要你要将这些工作表都拆分为单独的工作簿来向不同的部门下发,那这个用VBA应该怎么实现呢?假设我有示例文件所示的这样一个工作簿,里面有9个工作表,我需要将这9个工作表保存为9个单独的工作簿并且以工作表的名称来命名新建的工作簿。看代码
Sub 另存所有工作表为工作簿()Dim sht As Worksheet, mypathApplication.ScreenUpdating = Falsemypath = ThisWorkbook.Path & "\"&&&& '取得当前文件夹路径For Each sht In Sheets&&&&&&&&&& '对工作簿中的每一个Sheet进行操作sht.Copy&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& '复制工作表Kill mypath & sht.Name & ".xls"&&&&& '删除同路径下同名工作簿ActiveWorkbook.SaveAs mypath & sht.Name & ".xls"& '保存复制的工作表ActiveWorkbook.Close&&&&&&&&&& '关闭新保存的工作簿NextApplication.ScreenUpdating = TrueEnd Sub
上面的代码很简单。在这里说明一下,整个工作表的复制和部门区域的复制是不同的,工作表复制时会产生一个新的工作簿副本,而且这个工作簿副本就是当前活跃工作簿即ActiveWorkbook,而你复制一个区域的话,比如复制所有有内容的区域sheet1.usedrange,则复制的就是内容,而不会产生一个新的工作簿。所以在将Excel工作表另存为工作簿的时候只要用工作表的Copy方法即可以了,而不必先新建一个工作簿,再将内容复制进去,这样思路虽对,但显然麻烦了。本节示例文件下载地址
您可能也喜欢:
TA的最新馆藏[转]&[转]&[转]&
喜欢该文的人也喜欢

我要回帖

更多关于 vba 工作表是否存在 的文章

 

随机推荐