在Do-Loop内下标超出范围

当我尝试激活时,我有以下部分代码和我的for循环中断仅在第35个选项卡上。 代码6-33正确运行代码。 我删除了表34,所以我想这可能是因为它跳转到表35.但是,当我debugging并将光标放在endTab我看到它包含值35.激活由于某种原因不能工作只在这张纸上rest。 有什么想法吗?

Dim lastRow As Long Dim startRow As Long Dim currentRow As Long Dim endTab As Integer Sheets(4).activate lastRow = Cells(Rows.Count, 2).End(xlUp).Row startRow = 2 Range("A2:AB" & lastRow).Sort key1:=Range("AB2:AB" & lastRow), _ order1:=xlAscending, Header:=xlNo For i = startRow To lastRow Sheets(4).activate endTab = Range("AB" & startRow + i - 2) Range("A" & startRow + i - 2 & ":" & "AB" & startRow + i - 2).Copy Worksheets(endTab).activate Columns("A").Find("", Cells(Rows.Count, "A")).PasteSpecial xlPasteValues Next 

来自评论:

图纸代码名称是在第一次创build图纸时创build的 – 它们不会调整为匹配工作簿中的图纸顺序。 您的代码正在处理“第35张”(从左到右计数您的工作表选项卡),这不一定是代号为“Sheet35”的工作表