我多年来一直使用带有ExecuteExcel4Macro VBA命令的Excel文件来从已关闭的Excel文件中提取值。我只在Windows 7的机器上使用过它,它运行得很完美。一个警告:截至今年,我所有关闭的Excel文件都是.xls文件。
今年,同一个Excel文件仍然可以正确地从每个已关闭的.xls文件中提取值,但它不会从任何已关闭的.xlsm文件中提取值。但是,当我启动任何.xlsm文件(即打开Excel源文件)时,带有ExecuteExcel4Macro命令的Excel文件正确地从打开的.xlsm文件中提取值。
任何人都知道为什么带有VBA代码的Excel文件在关闭的.xlsm文件上仍能正常工作,但每个关闭的.xlms文件都会生成Type 13错误?我捕获错误,通过在输出的Excel文件(带有我的VBA代码的文件)中放一条简短的消息来报告它,然后继续读取下一个Excel文件)。不是Dim错误,因为宏可以处理源文件CLOSED时提取的所有数据。
还有一条信息:当我在Windows 10计算机上运行时,带有ExecuteExcel4Macro VBA代码的Excel文件工作正常。也就是说,它正确地从每个关闭的.xlsm文件的正确单元格中提取值。因此,它只在以下情况下才起作用:(1)我在Win 7机器上运行它,#AND#(2).xlms文件已关闭。
感谢。