你这段代码写得不简洁,是录制宏改的吧。Workbooks.Open (ThisWorkbook.Path & "/" & I & ".xls")这句应该有问题,“/”反向了。但不应该是“下标越界”的问题,具体哪句出现的问题呢?Sheets("W").Select——这句如果循环打开的某个文件没有工作表“W”,会出现下标越界