Как создать макрос, который спрашивает, хотите ли вы переименовать лист? - PullRequest
0 голосов
/ 13 февраля 2020

Мне нужен макрос, который переименует лист, когда пользователь запишет в поле ввода. Пока что у меня есть это, но когда я вставляю новое имя, старый лист не меняет своего имени.

Лист сравнения уже существует и называется как «Сравнение». Я просто хочу изменить его имя в соответствии с новым, которое решит пользователь.

Sub SalvarAba()

If MsgBox("Keep comparison?", vbQuestion + vbYesNo, "Keep?") = vbYes Then
     s = InputBox("Please enter a sheet name")
     'rename the sheet
End If

End Sub

Возможно, это не лучший способ сделать это, поэтому смело меняйте его, если это необходимо.

Ответы [ 2 ]

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

Вы можете сделать все это в виде поля ввода. Для этого требуется три возможных результата: Кнопка отмены Кнопка «ОК» без текста Кнопка «ОК» с текстом Я не фанат использования activeworkbook, но я понятия не имею, как называется ваша рабочая книга.

Я сделал предложенные изменения и добавлена ​​проверка на наличие листа "Сравнение".

    Private Sub test()
Dim wb As Workbook
Dim sht As Worksheet
Dim r As String
Dim result As String
    On Error GoTo None
Set wb = ActiveWorkbook 'can be cnged to ThisWorkbook as needed.

        Set sht = wb.Sheets("Comparison") 'this checks for worksheet by the name of "Comparison"

    r = InputBox("Keep comparison?  Enter name and hit OK, or just cancel to not keep comparison")
    If StrPtr(r) = 0 Then
    ElseIf r = vbNullString Then
    Else
        wb.Sheets("Comparison").Name = r
    End If
None:
End Sub
0 голосов
/ 13 февраля 2020
If MsgBox("Keep comparison?", vbQuestion + vbYesNo, "Keep?") = vbYes Then
     s = Inputbox("Please enter a sheet name")
     'rename the sheet
End If
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...