首页 > 解决方案 > 删除工作表错误“下标超出范围”

问题描述

我有 2 张名为选项卡 1 和选项卡 2 的工作表。我正在使用以下选项卡 2 中的条目创建工作表:

Sub copyeachrowtosheets()

Dim i As Integer

Dim j As Integer

Dim z As String

Dim y As Integer

Dim x As String

Dim h As Worksheet

Dim k As Integer

Dim l As String

Dim m As String

i = Sheets(2).Cells(Rows.Count, "A").End(xlUp).Row

y = 2

For j = 1 To (i - 1)

z = "A" & y

x = "M" & y

k = ActiveWorkbook.Sheets.Count

m = "B" & y

l = Sheets(2).Range(m).Value

Set h = ThisWorkbook.Sheets.Add(after:=Sheets(k))

h.Name = l

Sheets(2).Range("A1:M1").Copy Destination:=ActiveSheet.Range("A1")

y = y + 1

Next j

End Sub

now if i want to delete all the created sheets using vba, i made the below:

Sub deletesheetsspecific()

Dim i As Integer

Dim j As Integer

'Dim x As Integer

Application.DisplayAlerts = False

i = ActiveWorkbook.Sheets.Count

    For j = 1 To i

    Dim k As String

    k = VBA.left(Sheets(j).Name, 3)

        If k <> "tab" Then

        ActiveWorkbook.Sheets(j).delete

        End If

    Next j

Application.DisplayAlerts = True

End Sub

它只是随机删除几张纸,然后在“k = VBA.left(Sheets(j).Name, 3)”行给出错误“运行时错误:下标超出范围”。如果我再次单击运行,它会删除更多的工作表然后同样的错误。

谁能告诉我我在这里做错了什么?

标签: excelvba

解决方案


推荐阅读