Excel 保存包含 VBA 代码的工作簿
2003 及之前的版本中,在 xls
类型工作簿可以任意编写并保存 VBA 代码。
2007 版本开始,第一次保存包含 VBA 代码的工作簿时,Excel 会提示“无法保存工作簿”。
这是因为,含 VBA 代码的工作簿,必须保存成启用宏的工作簿类型。Excel 为此提供了xlsm
类型的工作簿,称之为「启用宏的工作簿」。
保存启用宏的工作簿
第一次保存时,将弹出前述提示框,为了保存 VBA 代码,其中选择「否」。在另存为窗口,保存类型列表中,选择「Excel 启用宏的工作簿(*.xlsm)」。
选择后保存,可以看到工作簿类型,xlsm
。
转载注明:文章转载自「懒人Excel - www.lanrenexcel.com」
跪了~~~
太详细了,我哭了。顶顶顶
我拆分成多个工作簿的时候点击运行子程序,每次都要询问我一次打开拆分完毕的工作簿是是否校验兼容性,然后每次都要疯狂点确定,有没有办法可以省去这个步骤
是不是跟文件类型有关系?高版本转低版本。如果是,设置一下文件类型。
还是不行的话,可以使用Application.DisplayAlerts=False,关掉所有警告。但是注意时候还要开启。
之前问过其他人,就是高版本转低版本,默认保存为2003的版本,所以会提示兼容性的校验,像您说的设置文件类型应该怎么操作呢?
以下是我从网上查的拆分工作簿的代码,是在这里调整代码吗还是怎么?
我理解应该是FileFormat:=xlNormal这个代码存在问题,把文件格式调整一下应该就可以,但是文件格式应该怎么表达呢?目前这个代码保存的是EXCEL默认格式。
辛苦大神!
Private Sub 分拆工作表()
Dim sht As Worksheet
Dim MyBook As Workbook
Set MyBook = ActiveWorkbook
For Each sht In MyBook.Sheets
sht.Copy
ActiveWorkbook.SaveAs Filename:=MyBook.Path & “\” & sht.Name, FileFormat:=xlNormal ‘将工作簿另存为EXCEL默认格式
ActiveWorkbook.Close
Next
MsgBox “文件已经被分拆完毕!”
End Sub
不指定 Fileformat 就可以,默认是当前使用的Excel版本。或者指定xlsx版本的,即 xlOpenXMLWorkbook。
更多文件类型请参考官方文档。
可以了 感谢感谢
马赛克打得略略马虎,强迫症表示希望改进,哈哈
收到,持续改进
新手大喜~感谢博主
写的很棒,简洁清晰,赞!
写的很好,支持!
请问下,现在office 2010下写的VBA代码,在其他更高版本比如2013,2017上运行是否向上兼容?
基本上兼容的,除非引用了已经废弃的代码