2014-07-18 4 views
0

다음과 같이 이름이 새 시트에 복사/복제해야하는 시트가있는 큰 통합 문서가 있습니다. 몇 가지 요소 만 변경하여 큰 사양의 데이터 세트를 생성하는 것입니다.이름 목록에서 중복 된 시트 Excel

 Colum A  Colum B 
1 SheetName CopyName 
2 Sheet4  Spec_ABC 
3 Sheet4  Spec_BCD 
4 Sheet5  Spec_123 
5 Sheet5  Spec_456 
6 Sheet9  Spec_Any 
7 ShettA  Spec_More 

workbooks Master/Sheet4/Sheet5/Sheet9/SheetA etc... 

아래 코드는 Sheet (2)의 이름을 복사합니다. (2)를 변경하여 SheetName을 반영하는 방법을 잘 모르겠습니다. 즉 콜럼 A 데이터.

따라서 본질적으로 CopyName에 CopyName으로 복사하십시오. CopyNames에는 중복 이름이 없기 때문에 오류 검사가 필요하지 않습니다.

Sub AutoAddSheet() 
Dim MyCell As Range, MyRange As Range 
Set MyRange = Sheets("Master").Range("B2") 
Set MyRange = Range(MyRange, MyRange.End(xlDown)) 

For Each MyCell In MyRange 
Sheets(2).Copy After:=Sheets(Sheets.Count) 'Create a new worksheet as a copy of Sheet number 
Sheets(Sheets.Count).Name = MyCell.Value 'Renames the new worksheets 
Next MyCell 
End Sub 

답변

0

당신은, 내가 여기에 트릭해야 뭔가 약간 다르게 할 수 있지만, 기본으로 코드를 부여 것 가까운되었다 : 기본적으로

Sub AutoAddSheet() 
    Dim MyCell As Range, MyRange As Range 
    Set MyRange = Sheets("Master").Range("A2") 
    Set MyRange = Range(MyRange, MyRange.End(xlDown)) 

    For Each MyCell In MyRange 
     Sheets(MyCell.Value).Copy After:=Sheets(Sheets.Count) 'Create a new worksheet as a copy of Sheet number 
     Sheets(Sheets.Count).Name = MyCell.Offset(0, 1).Value 'Renames the new worksheets 
    Next MyCell 
End Sub 

, 당신은 함께 Sheets(2)을 대체하고 싶어 Sheets(<sheet name>) 그리고 루프 아래로 열 A (Set MyRange = Sheets("Master").Range("A2")) 무슨 내가 한 - 시트 이름을 한 다음 해당 B 열에서 값을 가져 말을하는 MyCell.Offset(0, 1)를 사용하여 이름을 설정

희망적이라고 생각하세요!

+0

안녕하세요. 고맙습니다. 고맙습니다. 오프셋은 마술이었습니다. 당신은 슈퍼 *입니다. 쓸데없는 복사/붙여 넣기를 해주셔서 감사합니다. – user2671620

+0

이렇게 기쁘다, @ user2671620, S.O에 오신 것을 환영합니다. - 새로운 사용자 인 경우 솔루션이 귀하를 위해 일한 것으로 표시해야합니다 ... 귀하의 순위가 올라가고 다른 사람들이 귀하에게 도움이되었던 것과 유사한 문제를 검색 할 것입니다. –