Наименование нескольких листов - PullRequest
0 голосов
/ 19 февраля 2020

У меня есть книга с двумя листами, которую я копирую в конец книги.

Я пытаюсь присвоить двум листам одно и то же имя с помощью InputBox и дать им два разных суффикса в качестве стандарта, первый это «xxx - проект», а следующий - «xxx - отчет».

Я поместил два листа в массив. Как мне сослаться на два листа через InputBox?

Public Sub CopySheets()
    Dim shName As String 'Sheet name var
    Dim shExists As Boolean

    Do

        shName = InputBox("Please enter name of new project", "New Project")

        If shName <> "" Then

            shExists = SheetExists(shName) 'Check for existing sheet name
            If Not shExists Then
                Worksheets(Array(1, 2)).Copy After:=Sheets(Sheets.Count)

            Else
                MsgBox "Project Name:" & Space(1) & shName & " already exists", vbOKOnly + vbCritical, "Deter"
            End If

        End If

    Loop Until Not shExists Or shName = ""
    End Sub

    Private Function SheetExists(ByVal sheetName As String, _
      Optional ByVal wb As Workbook)

    If wb Is Nothing Then Set wb = ActiveWorkbook
    On Error Resume Next
    SheetExists = Not wb.Worksheets(sheetName) Is Nothing
    End Function

Пример изображения:

enter image description here

1 Ответ

0 голосов
/ 19 февраля 2020

Нечто подобное в условии if

    If Not shExists Then
        Worksheets(Array(1, 2)).Copy After:=Sheets(Sheets.Count)

        Dim ws As Worksheet
        Set ws = Sheets(Sheets.Count - 1)
        ws.Name = shName & "- project"

        Set ws = Sheets(Sheets.Count)
        ws.Name = shName & "- report"

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