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