你这个是因为Find没有找到合适的单元格,所以单元格不存在,那么返回row就出错了! 建议这么改: Dim rngLevel as Range, rngJob as Range set rngJob = standard.Range("E1:j2").Find(file.Cells(i, 2)) If Not rngJob Is Nothing Then nowJob = rngJob.Column Set rngLevel = standard.Range("A1:A10").Find(file.Cells(i, 3)) If Not rngLevel Is Nothing then nowLevel = rngLevel.Row