2016-06-13 3 views
0

이것은 너에게 쉽지 않을 수도 있지만 vba에서 새로 온 것입니다. 다음 코드가 있습니다. 내 masterfile이 열려있을 때 여러 파일을 엽니 다.행의 특정 값을 복사하여 붙여 넣기

Dim StrFile As String 
Dim WB As Workbook 
    Dim InputFilePath As String 
InputFilePath = "Z:\1000_Entwicklung\05_PROJECT\0558000_CFT \055800L_CFT_Projektleitung\99_Arbeitsordner PL\Tanverdi, Yigit\SAA\" 
StrFile = Dir(InputFilePath & "*") 

Do While Len(StrFile) > 0 
    Set WB = Workbooks.Open(InputFilePath & StrFile) 
    WB.Activate 
     sheets("data").Select 
     sheets("data").Move After:=Workbooks("makrotochange.xlsm").sheets(23) 
     StrFile = Dir() 
Loop 

    Dim copiedSheet As Worksheet 
    Dim masterSheet As Worksheet 

Set copiedSheet = Worksheets("data") 
Set masterSheet= Worksheets("masterSheet") 

셀을 복사하고 싶습니다. Columns A; 비; 기음; 데이터 시트의 모든 행에서 D를 클릭 한 다음 첫 번째 빈 행을 마스터 시트에 붙여 D 열로 붙여 넣습니다. 기음; 에이; B (셀 A는 마스터 시트의 셀 D, B는 C, C는 C, D는 B 등)에 붙여 넣습니다.

행 양이 동적이므로, copiedSheet에 포함 된 모든 행의 A, B, C 및 D를 복사하여 masterSheets D; C; A; B 셀의 첫 번째 빈 행에 붙여 넣을 수 있기를 원합니다. .

아무도 내가 이것을 할 수있는 방법을 알고 있습니까?

EDIT : 동일한 작업을 수행해야하는 copiedSheet2를 갖고 싶지만 다음 빈 행에 대상 (masterSheet)을 붙여 넣어야합니까?

답변

1

이것은 사용자가 작성한 것입니다. .Select을 사용하지 않고 한 위치에서 다른 위치로 데이터를 복사하는 가장 깨끗한 방법입니다.

copiedSheet.Range("A:A").Copy Destination:= masterSheet.Range("D:D") 
copiedSheet.Range("B:B").Copy Destination:= masterSheet.Range("C:C") 
copiedSheet.Range("C:C").Copy Destination:= masterSheet.Range("A:A") 
copiedSheet.Range("D:D").Copy Destination:= masterSheet.Range("B:B") 
+0

감사합니다. 나는 한 번 더 qeustion, 같은 일을해야 copyThe2 가지고 싶은 경우,하지만 그것은 다음 빈 행에 대상 (masterSheet) 붙여합니다? –

+0

@ BartuSaner 답변이 정확하다면 [답변 수락] (http://stackoverflow.com/tour)을 클릭하여 답변을 수락하십시오. 새로운 질문이있는 경우 새로운 질문을 올리십시오. 그러한 참조가 가치 있다고 믿는다면 (물론) 새 질문에이 게시물에 연결할 수 있습니다. BTW : * (+1) *이 게시물에 대한 내 편이. – Ralph