2016-06-13 6 views
0

VBA를 처음 사용하기 때문에 다음과 같은 문제를 해결할 수있는 적절한 방법을 찾을 수 없습니다.VBA 및 목록으로 복사 붙여 넣기

Excel 워크 북에 5 개의 워크 시트가 있습니다. 마지막 3 개의 워크 시트는 데이터로 가득 찬 반면 첫 번째 워크 시트는 마지막 3 개의 워크 시트 이름이있는 목록입니다. 나는 목록에서이 워크 시트 중 하나의 이름을 선택하면 비어있는 두 번째 워크 시트에 붙여 넣기됩니다.

내가 목록에 워크 시트 4 선택의 말을하자, 워크 시트 2 이제 워크 시트의 복사 붙여 넣기 4.

+1

매크로를 기록하는 것은 당신이 대부분의 방법을 얻을 것이다 ... –

+0

안녕하세요, 감사합니다 당신의 대답을 위해. 좀 더 자세히 설명해 주시겠습니까? – user6457870

+0

예 : http://www.excel-easy.com/vba/examples/macro-recorder.html –

답변

1

입니다 시트 1의 코드 모듈에이를 붙여 넣습니다.
변경이 :

  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 - 시트 1 코드의 모듈에 넣으면 작동하지 않기 때문에 버튼을 사용해야합니다. 자동으로 수행 할 수있는 방법이 있습니까? 2 - 감사합니다 Thomas. 지금 내가 복사 한 워크 시트의 이름과 다른 목록에 내 이름을 갖고 싶으면. 목록의 이름이 A이고 "AA1"이라는 워크 시트가 복사됩니다. 어떻게해야합니까? 건배 – user6457870

+0

Sheet1을 사용하고 있는지 확인하십시오. VBA 프로젝트 창에는 시트 코드 이름과 시트 이름이 표시됩니다. 이 예제에서는 Sheet3 (Sheet2) Sheet3 참조하고 있습니다. –

+0

Excel 리본> 삽입의 개발자 탭을 통해 버튼을 추가 할 수 있습니다. 하지만 먼저 개발자 탭을 표시하려면 파일> 옵션> 리본 사용자 정의> 왼쪽 패널에서 개발자를 클릭하십시오. –