这看不出来,你要具体看看是哪种错误或许还能猜一猜; 你这代码我估计是低版本的excel用的,因为在高版本中,excel在打开文件的时候会自动创建备份文件,他们是以"~$”开头的隐藏文件,因此代码 if filename<>thisworkbook.name then 这一句是有问题的,并不能过滤这些临时文件,打开这些文件也会出错,但错误不会出现在你现在标色的那一句,会出现在 with workbooks.open 这个地方; 常用的方法是在出错后,选择调试,然后在监视窗口添加有疑问的变量,来查看到底哪里有问题;