首页 > 解决方案 > 通过 VBA 检测 Excel 文件格式类型

问题描述

我正在尝试将xlsx工作表导入到xls工作簿中,但遇到了关于行数xlsx大于xls. 我想在我的宏的开头添加一个检查,该检查在打开的工作簿中检测到xls,然后另存为xlsx并以新格式重新打开。

我相当肯定我可以通过检查“文件扩展名”来做到这一点,但我会感觉更好地利用 Excel/VBA 中内置的某种功能,它可以检测文件是否是“Excel 97-2003”风格的工作簿,因为用户可以只需更改文件扩展名而不更改文件类型。有没有办法以编程方式检查workbook当前打开的类型?ActiveWorkbook.

我没有任何代码可以分享,因为我能找到的所有代码都与检查文件是否打开或检查文件扩展名等有关。也许我的 google-fu 今天关闭了,但我在搜索中没有得到任何相关信息所以我什么都没试过。

标签: excelvba

解决方案


我会使用该Workbook.FileFormat属性:

返回工作簿的文件格式和/或类型。只读XlFileFormat

If ActiveWorkbook.FileFormat = xlExcel8 Then
   ActiveWorkbook.SaveAs fileFormat:=xlOpenXMLWorkbook
End If

推荐阅读