2013-03-13 3 views
-1

매크로를 사용하는 것이 처음이므로 행을 하나의 엑셀 파일로 복사하고 다른 파일을 열로 붙여 넣는 데 도움이 필요합니다. 나는 매크로를 기록하는 동안 수동으로 첫 번째 행을 수행하고 여기에 코드입니다했습니다하나의 엑셀 파일을 다른 엑셀 파일로 복사하기위한 매크로

Sub Macro2() 

Macro2 Macro 

Range("D5:L5").Select 
Selection.Copy 
Windows("New_SET_Data.xlsx").Activate 
Range("B7").Select 
Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _ 
    False, Transpose:=True 
Windows("Original_SET_Data.xls").Activate 

End Sub 

이 여러 행을 수행해야하고, 원래 내에서 워크 시트 파일을 엑셀.

+1

... 아마도 게시물을 다시 읽고 큰소리로 말하십시오. 예상되는 내용은 무엇입니까? 그것에 대해 생각해보십시오. –

+0

올바르게 작동하지 않는 부분은 무엇입니까? –

+0

저는 이것을 자동화하고 하나의 워크 시트의 모든 행을 순환시켜 다음 워크 시트로 이동하는 방법을 모르겠습니다. do while loop와 같은 것이 있을까요? – user2166059

답변

1

범위, 워크 시트 & 통합 문서를 변수로 넣으면 해결하기가 더 쉽습니다. WorksheetFunction "Transpose"를 사용하여 데이터를 변경하십시오. 다음과 같이하십시오.

Sub Macro2() 

Dim wb1 as Workbook, wb2 as Workbook 
Dim ws1 as Worksheet, ws2 as Worksheet 
Dim rngSource as Range, Dim rngDest as Range, rngTemp as Range 
Dim varArray() as Variant 

Set wb1 = Workbooks("Original_SET_Data.xls") 
Set wb2 = Workbooks("New_SET_Data.xlsx") 
'To work through all sheets in Original_Set_Data.xls, you can replace this line with a "For each ws1 in wb1.Worksheets" loop and put Next at the end. 
Set ws1 = wb1.Worksheets("Whatever_The_Source_Sheet_Is_Called") 
Set ws2 = wb2.Worksheets("Whatever_The_Destination_Sheet_Is_Called") 

'Find the Source Range & Next Available Destination Column 
Set rngSource = ws1.Range("D5", ws1.Range("D60000").end(xlUp).Address) 
Set rngDest = ws2.Range("IV7").End(xlToLeft).Offset(0,1) 

'Loop through Source Range and Transpose Data 

For each rngTemp in rngSource 
    'Put values from columns D to L into an array 
    varArray = ws1.Range(rngTemp, rngTemp.Offset(0, 8).Value) 
    'Transpose data - there are 9 columns D to L so we resize the range to be 9 rows high 
    rngDest.Resize(9,1).Value = WorksheetFunction.Transpose(varArray) 
    'Move to next column in new sheet 
    Set rngDest = rngDest.Offset(0,1) 
Next 

End Sub 
+0

행 집합을 통해 루핑을 자동화하고 새 스프레드 시트로 데이터를 변환합니다 ... 또한 wb1.Worksheets 컬렉션을 반복하여 여러 WS1 시트에서 실행할 수 있습니다. – MattCrum