2016-09-02 6 views
1

Я пытаюсь создать макрос, который будет представлять окно ввода после нажатия кнопки, просто говоря: «Что бы вы хотели назвать? новый лист? », затем, как только пользователь ввел имя, Excel создаст новый лист с этим именем.Excel Macro, чтобы предоставить поле ввода, создать новый лист, скопировать данные из исходного листа в новый лист

Однако я хотел бы, чтобы данные в исходном листе были скопированы на новый лист, который был назван пользователем.

Я поле ввода работает, с этим кодом:

Sub NewSheet() 

Sheets.Add.Name = InputBox("What Would You Like to Call the New Sheet?")  

End Sub 
+0

вы пытались ниже код? –

ответ

7

Попробуйте код ниже:

Sub NewSheet() 

    Dim origSht    As Worksheet 
    Dim destSht    As Worksheet 

    On Error GoTo eHandle 

    Set origSht = ActiveSheet 

    Sheets.Add.Name = InputBox("What Would You Like to Call the New Sheet?") 
    Set destSht = ActiveSheet 

    origSht.Cells.Copy Destination:=destSht.Cells 

Exit Sub 

eHandle: 

    MsgBox "You must name the new sheet" 
    set origSht = nothing 
    set destSht = nothing 

End Sub 
+1

Вам также понадобится нажать кнопку отмены –

Смежные вопросы