1、前面你提到的错误,是因为我之前是用你的源文件测试的,一切弄好后,我保存为.xlsm文件;
2、保存的文件名称不变,文件类型变为xlsm,这两种类型的文件在实际运行时有差异,其中xlsm会动态生存一个"~$"开始的临时文件,这个临时文件会导致文件过滤失效,以至于重复打开了自己,所以出错;“~$空白文件汇总表.xlsm”与“空白文件汇总表.xlsm”其实是一个东西,前者是后者的临时备份,关闭文件后系统会删除这个备份;
3、如果你能打开代码,只要修改一个地方:文件过滤的那一行:
把:
If mySubFile.Name<>thisworkbook.name Then '原来的过滤方法是把“空白文件汇总表.xlsm”这个自己排除掉
改成:
If InStr(mySubFile.Name, "汇总空白表.xlsm") = 0 Then '因为会动态生存临时文件,所以排除的方法修改成不包含“汇总空白表.xlsm”
下面一行
Set wb = Workbooks.Open(s)
就能正确运行了;