2013-03-20 3 views
1

나는 항상 동일한 워크 시트를 사용하여 많은 데이터 세트를 가지고 있습니다.다른 워크 시트의 첫 번째 3 열을 단일 파일로 복사

이제 각 워크 시트마다 다른 파일을 만들고 싶습니다. http://www.extendoffice.com/documents/excel/628-excel-split-workbook.html#kutools

그러나, 나는 또한 만 워크 시트의 처음 세 열을 원하고 바람직하게는 항상

누군가가 올바른 방향으로 날 지점 수 행 2. 시작 : 난 그냥 그 작업을 수행하는 코드를 발견했다. 예 : 내가 게시 한 코드를 변경하는 방법. 코드 아래

+0

, 나는 그냥 리본 관리 추가 기능을 참조하십시오. VBA를 사용하면 그렇게하기가 어렵지 않습니다. –

+1

내가 처분 할 수있는 Alt + F11, VBA를 알려 드리겠습니다. 이제 프로그래머로서 (StackOverflow는 프로그래머를위한 플랫폼이므로) 코드 작성이 가능할 것으로 기대합니다. Excel 스프레드 시트 창에서 레코드 매크로 버튼을 사용하여 코딩하려는 작업을 기록해보십시오. 녹음을 중지하고 VBA 창으로 전환하여 결과를 확인한 다음 마음에 두는 것을 자동화하십시오. –

답변

0

시도 : 그 링크 코드를 볼 수 없습니다

Sub Splitbook() 

    Application.ScreenUpdating = False 

    Dim myPath As String 
    Dim rng As Range 
    Dim sht As Worksheet 
    Dim lastRow As Long 
    Dim wkb As Workbook 

    For Each sht In ThisWorkbook.Sheets 

     lastRow = sht.Range("A6500").End(xlUp).Row 
     If lastRow < 2 Then GoTo nextSht 

     Set rng = sht.Range("A2:C" & lastRow) 
     If Not rng Is Nothing Then 
      Set wkb = Workbooks.Add 
      rng.Copy wkb.Sheets(1).Range("A2") 
      myPath = filePath(sht.Name) 
      wkb.SaveAs Filename:=myPath 
      wkb.Close 
      Set wkb = Nothing 
      Set rng = Nothing 
     End If 

nextSht: 
    Next 

    Application.ScreenUpdating = True 
End Sub 

Function filePath(worksheetname As String) As String 

    Dim fso As Object, MyFolder As String 
    Set fso = CreateObject("Scripting.FileSystemObject") 
    MyFolder = ThisWorkbook.Path & "\Reports" 


    If fso.FolderExists(MyFolder) = False Then 
     fso.CreateFolder (MyFolder) 
    End If 

    MyFolder = MyFolder & "\" & Format(Now(), "MMM_YYYY") 
    If fso.FolderExists(MyFolder) = False Then 
     fso.CreateFolder (MyFolder) 
    End If 


    filePath = MyFolder & "\" & worksheetname & Format(Now(), "DD-MM-YY hh.mm.ss") & ".xlsx" 
    Set fso = Nothing 

End Function 
+0

은 매력처럼 작동합니다. 고마워요! –

관련 문제