range(cells(),cells()) 这样的形式,cells()如果参数有变量,前面的父对象(也就是表格)省略了有时候会出错!我也不知道为什么,接触了很多年VBA的经验!比如:当前表Range(Cells(1, i), Cells(j, 2)) 改成Range(ActiveSheet.Cells(1, i), ActiveSheet.Cells(j, 2))就不会错了