VBA Macro поставил меня в тупик - PullRequest
0 голосов
/ 31 октября 2019

Я использую макрос, чтобы сделать копию активного листа и переименовать его в любое значение ячейки 'C2'. Единственная проблема состоит в том, что когда он копирует лист, он каким-то образом удаляет кнопки формы в верхней части моего листа и заменяет их кодом = $ c $ 2 в ячейке «AF».

Насколько яИз кода VBA видно, что в ячейке «AF» нет ничего. Может кто-нибудь сказать мне, почему он это делает?

Sub Copy_Rename()
    Dim shtName As String
    shtName = ActiveSheet.Name
    ActiveSheet.Copy before:=ActiveSheet
    ActiveSheet.Name = Range("C2").Value
    Sheets(shtName).Activate
End Sub

1 Ответ

0 голосов
/ 31 октября 2019

Попробуйте это:

Sub Copy_Rename()
    Dim sht As Worksheet
    Set sht = ActiveSheet
    Application.CopyObjectsWithCells = True '<< to also copy objects not just cell contents etc
    sht.Copy before:=sht
    'Get the just-created sheet
    With Sheets(sht.Index - 1)
        .Name = sht.Range("C2").Value
        .Activate
    End With
End Sub
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...