при удалении листов ошибка «индекс вне диапазона» - PullRequest
0 голосов
/ 09 февраля 2019

У меня есть 2 листа с именем tab 1 и tab 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) ".если я нажму, чтобы запустить снова, он удалит еще несколько листов, а затем ту же ошибку.

Может кто-нибудь сказать мне, что я делаю здесь неправильно, пожалуйста?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...