本帖最后由 adders 于 2016-3-21 22:34 编辑
Excel 2007后有新文件格式出现: ".xlsx", ".xlsm",".xlsb"。"SaveAs"在03以前只有一种文件格式,即默认的".xls",所以在03上运行SaveAs时不需要指定格式,但如果在07以上版本运行时,需要加上FileFormat参数。
不管在03还是在更高版本Excel上运行SaveAs时,如果总是需要保存为".xls"格式,那么做以下调整可生成无乱码(格式正确)的".xls"文件:
先把以下加入标准模块下(standard module):
Public Sub GenExcel2003(FullFileName) If Val(Application.VERSION) < 12 Then ActiveWorkbook.SaveAs FullFileName Else ActiveWorkbook.SaveAs FullFileName, FileFormat:=56 End If End Sub
然后,在原来的代码中运行SaveAs的行中进行修改: 如,原先是:.SaveAs Filename:=fname & "xls",可改成:Call GenExcel2003 fname & "xls"
|