2014-04-30 5 views
-1

안녕하세요 저는 약 10,000 개의 레코드와 약 8 개의 스프레드 시트를 가지고 있습니다. Excel 스프레드 시트를 250 행의 데이터가 포함 된 다른 스프레드 시트로 나누고 싶습니다. 그래서 예를 들면. 스프레드 시트 1에는 250 개의 행이 있습니다. 스프레드 시트 2는 250 개의 행 (원래 10,000 개의 목록에서 251-500 개)을 가지며 나머지는 모두 완료 될 때까지 계속됩니다. 또한 각 스프레드 시트에 원본 헤더를 유지해야합니다.엑셀 스프레드 시트를 분리하여 별도의 엑셀 시트를 행별로 구분하는 방법

아무도 도와 줄 수 있습니까?

+0

난 당신과 비슷한 뭔가를 찾고 있다고 생각 [이] (http://stackoverflow.com/questions/19325865/excel-vba-copy-a-range-into-a-new-workbook) . – David

답변

1

이것은 A1 : Z1000의 데이터를 가정해야합니다. 범위, 통합 문서 이름 및 필요에 따라 "다른 이름으로 저장"경로 만 변경하면됩니다.

Sub generateSheets() 

Dim sheetName As String 
Dim headerRng As Range 


Set headerRng = Workbooks("GenerateSheetsTest.xlsm").Worksheets("sheet1").Range("A1:Z1") 

Application.ScreenUpdating = False 

For i = 0 To 1000 Step 250 
sheetName = "Until" & i + 250 
Set NewBook = Workbooks.Add 
headerRng.Copy 
NewBook.Worksheets("Sheet1").Range("A1").PasteSpecial (xlPasteValues) 
Workbooks("GenerateSheetsTest.xlsm").Worksheets("sheet1").Range("A" & i + 2 & ":Z" & i + 251).Copy 
NewBook.Worksheets("Sheet1").Range("A2").PasteSpecial (xlPasteValues) 
NewBook.SaveAs fileName:="C:\Users\" & Environ$("username") & "\Documents\Output\" & sheetName & ".xlsx" 
ActiveSheet.Range("A1").Select 
ActiveWorkbook.Close True 
Next i 

Application.ScreenUpdating = True 

End Sub 
+0

응답 해 주셔서 대단히 감사드립니다. –

관련 문제