Как дублировать и переименовать вкладку, содержащую числа постепенно - PullRequest
0 голосов
/ 17 января 2019

Я пытаюсь создать код, который будет дублировать и переименовать вкладку шаблона с именем "001". Дело в том, что я хочу, чтобы каждая дублированная вкладка называлась «001 +1». Таким образом, имена дублированных вкладок будут "002,003, ..., 010,011 ... 100,101 и т. Д.

Количество дубликатов будет определяться числом, введенным в окно сообщения с вопросом «Сколько копий вы хотели бы сделать?». Также я хотел бы, чтобы не было дубликатов или вкладок с именем "001 (2)", если бы позднее было добавлено больше копий вкладок.

Я очень ценю вашу помощь.

1 Ответ

0 голосов
/ 18 января 2019

Вот один из способов сделать это:

Sub Tester()
    CreateSheets 4
End Sub


'EDIT: added specific workbook reference to qualify sheet references
Sub CreateSheets(howMany As Long)
    Dim nm As String, sht As Worksheet
    Dim i As Long, n As Long, wb As Workbook

    Set wb = ThisWorkbook
    For n = 1 To howMany
        i = 2
        Do
            nm = Format(i, "000")
            Set sht = Nothing
            'see if this sheet exists...
            On Error Resume Next
            Set sht = wb.Sheets(nm)
            On Error GoTo 0
            If sht Is Nothing Then
                'get the sheet to copy the template after
                Set sht = wb.Sheets(Format(i - 1, "000"))
                wb.Sheets("001").Copy after:=sht
                wb.Sheets(sht.Index + 1).Name = nm
                Exit Do 'made our copy
            End If
            i = i + 1
        Loop
    Next n
End Sub
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...