2016-06-13 4 views
0

Я совершенно новый для VBA, и я не могу найти правильный способ решить мою следующую проблему.Скопируйте пасту с VBA и списком

У меня есть книга Excel с 5 рабочими листами. Последние 3 листа заполнены данными, а первый - списком с именами трех последних листов внутри него. Я хочу, чтобы, когда я выбираю в списке имя одного из этих рабочих листов, он копируется на второй лист, который пуст.

Допустим, я выбираю таблицу 4 в списке, таблица 2 теперь копия пасты листа 4.

+1

Запись макроса будет вам большую часть пути туда ... –

+0

Привет, спасибо за ваш ответ. Можете ли вы подробнее рассказать? – user6457870

+0

Уверен: http://www.excel-easy.com/vba/examples/macro-recorder.html –

ответ

1

Вставьте это в код модуля Лист1 «s.
Изменить эти:

  1. Sheet2Name
  2. Sheet1NamesListAddress
  3. NewName
    Private Sub Worksheet_SelectionChange(ByVal Target As Range) 
     
        Const Sheet2Name = "Sheet2" 
     
        Const Sheet1NamesListAddress = "A1:A10" 
     
        Const NewName = "New Name" 
     
    
     
        If Not Intersect(ActiveCell, Range(Sheet1NamesListAddress)) Is Nothing Then 
     
         Application.DisplayAlerts = False 
     
         On Error Resume Next 
     
         Sheets(Target.Text).Copy Before:=Sheets(2) 
     
         ThisWorkbook.Worksheets(Target.Text).Delete 
     
         Sheets(2).Name = NewName 
     
         Application.DisplayAlerts = False 
     
         On Error GoTo 0 
     
        End If 
     
    End Sub
+0

Спасибо всем за ответы. Это хорошо справилось с макрорекордером. Просто, чтобы закончить, у меня есть два вопроса. 1 - Мне нужно сделать кнопку для этого, потому что, если я положил его в модуль кода Sheet1, он не работает. Есть ли способ сделать это автоматически? 2 - Спасибо Томасу за код. Если теперь я хочу, чтобы мое имя было в списке, отличном от имени листа, который я копирую. Допустим, что имя в списке A, и оно скопирует рабочий лист под названием «AA1», как мне это сделать? Cheers – user6457870

+0

Убедитесь, что вы используете Sheet1. Окно проекта VBA показывает имя листа, а также имя листа. Этот пример Sheet3 (Sheet2) относится к Sheet3. –

+0

вы можете добавить кнопку через вкладку разработчика в ленте Excel> insert. Но сначала вы должны разрешить вкладке разработчика отображать в меню «Файл»> «Параметры»> «Настройка ленты»> на левой панели, нажмите кнопку «Разработчик». –

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