2017-12-06 4 views
0

하나의 통합 문서에서 다른 통합 문서로 일부 열 (항상 동일)을 복사/붙여 넣기하고 싶습니다. 통합 문서간에이 작업을 수행 할 수있는 코드를 만들 수 없습니다. 그리고 목표 시트의 4 번째 행에 붙여 넣기 값을 원하고 직접 할 수있는 것은 두 번째 것으로 붙여 넣기 만하면됩니다./선택한 열을 하나의 xls에서 다른 열로 복사/붙여 넣기하는 방법

이 코드와 같지만이 코드는 하나의 붙여 넣기 값에서만 작동합니다 동일한 xls 파일에서 다른 시트로 복사 :

EDIT : xls 파일간에 복사/붙여 넣기를 시도하는 코드입니다. 작동하지 않기 때문에 내가 뭘 잘못 했습니까?

Sub Paste_columns() 

Dim x As Worksheet, r As Long, y As Worksheet 

Set x = Workbooks("Bench.xlsm").Worksheets("Test-Sheet") 
Set y = Workbooks("Pres.xls").Worksheets("Paste_tab") 
With y 
    For r = 2 To y.Range("B" & Rows.Count).End(xlUp).Row 
     If y.Cells(r, 2).Value > 0 Then 
     x.Range("B" & Rows.Count).End(xlUp)(2).Value = .Cells(r, 2) 
     x.Range("C" & Rows.Count).End(xlUp)(2).Value = .Cells(r, 3) 
     x.Range("D" & Rows.Count).End(xlUp)(2).Value = .Cells(r, 4) 
     x.Range("E" & Rows.Count).End(xlUp)(2).Value = .Cells(r, 5) 
     x.Range("H" & Rows.Count).End(xlUp)(2).Value = .Cells(r, 8) 
     x.Range("I" & Rows.Count).End(xlUp)(2).Value = .Cells(r, 9) 
     x.Range("M" & Rows.Count).End(xlUp)(2).Value = .Cells(r, 13) 
     x.Range("O" & Rows.Count).End(xlUp)(2).Value = .Cells(r, 15) 
     x.Range("Q" & Rows.Count).End(xlUp)(2).Value = .Cells(r, 17) 
     x.Range("S" & Rows.Count).End(xlUp)(2).Value = .Cells(r, 19) 
     x.Range("V" & Rows.Count).End(xlUp)(2).Value = .Cells(r, 22) 
     x.Range("W" & Rows.Count).End(xlUp)(2).Value = .Cells(r, 23) 
      Else: End 
     End If 

    Next r 

End With 
End Sub 
+0

이미 검색하셨습니까 ??? 이 사이트에는 귀하와 비슷한 몇 가지 질문이 있습니다. –

+0

예,하지만 통합 문서 ("bla.xls")를 추가하는 중 워크 시트 ("bla") - 작동하지 않습니다 :/또는 실수를하고 있습니다. 그리고 나는 여전히 복사 된 첫 번째 행을 대상 시트의 네 번째 행에 붙여 넣는 방법을 다루지 않습니다. – KaBi

답변

0

마지막으로이 같은 짓을했는데 제대로 작동합니다. @Harassed Dad 덕분에 - 나는 당신의 코드를 사용했습니다. 나는 그것이 보편적 일 수 있다고 생각하지만 나에게 그것은 이제 괜찮습니다.

Sub PasteToTemplate() 

Dim xD As Workbook 
Dim xS As Workbook 
Dim wsSource As Worksheet 
Dim x As Worksheet 
Dim tempN As Worksheet 
Dim tN As String 
Dim sN As String 

With Sheets("Source_sample_size") 
    sN = .Range("PresName").Value 
End With 

Set xS = Workbooks(sN) 
Set wsSource = xS.Worksheets("Paste_tab") 

Set tempN = xS.Worksheets("Source_sample_size") 

With tempN 
    tN = .Range("tempName").Value 
    End With 

Set xD = Workbooks.Open(tN) 
Set x = xD.Worksheets("Test-Sheet") 


     wsSource.Range("A2:F" & wsSource.Range("A" & wsSource.Rows.Count).End(xlUp).Row).Copy 
     x.Range("B4").PasteSpecial (xlPasteValues) 

     wsSource.Range("H2:I" & wsSource.Range("A" & wsSource.Rows.Count).End(xlUp).Row).Copy 
     x.Range("H4").PasteSpecial (xlPasteValues) 

     wsSource.Range("J2:J" & wsSource.Range("A" & wsSource.Rows.Count).End(xlUp).Row).Copy 
     x.Range("M4").PasteSpecial (xlPasteValues) 

     wsSource.Range("K2:K" & wsSource.Range("A" & wsSource.Rows.Count).End(xlUp).Row).Copy 
     x.Range("O4").PasteSpecial (xlPasteValues) 

     wsSource.Range("L2:L" & wsSource.Range("A" & wsSource.Rows.Count).End(xlUp).Row).Copy 
     x.Range("AI4").PasteSpecial (xlPasteValues) 

     wsSource.Range("M2:M" & wsSource.Range("A" & wsSource.Rows.Count).End(xlUp).Row).Copy 
     x.Range("AK4").PasteSpecial (xlPasteValues) 

     wsSource.Range("P2:P" & wsSource.Range("A" & wsSource.Rows.Count).End(xlUp).Row).Copy 
     x.Range("AM4").PasteSpecial (xlPasteValues) 



End Sub 
0

를 사용하여 의미있는 변수 이름 - 당신이 배우는 특히 :

Sub Example() 
Dim wbSource As Workbook 
Dim wbDestination As Workbook 
Dim wsSource As Worksheet 
Dim wsDestination As Worksheet 
Dim rSource As Range 
Dim rDestination As Range 
Set wbSource = Workbooks("Pres.xls") 
Set wsSource = wbSource.Worksheets("Paste_tab") 

Set wbDestination = Workbooks("Bench.xlsm") 
Set wsDestination = wbDestination.Worksheets("Test-Sheet") 

Set rSource = wsSource.Range("b2:b" & wsSource.Range("b" & wsSource.Rows.Count).End(xlUp).Row) 
For Each rDestination In wsDestination.Range("B4:W4") 
    If InStr("BCDEHIMOQSVW", Left(rDestination.AddressLocal(False, False), 1)) > 0 Then 

     ' rSource.Copy rDestination 
    '=============if only values wanted =========== 
     rsource.copy 
     rdestination.pastespecial xlpastevalues 
'================== 
    End If 
Next rDestination 
End Sub 
+0

그것은 좋아 보인다. 그러나 VALUES를 붙여 넣어야한다고 명시해야만한다. 왜냐하면 지금은 수식 만 복사하기 때문이다. :) – KaBi

+0

pastValues를 구현 했으므로이 코드는 소스에서 B 열을 모든 언급 된 InStr 열로 복사한다. 언급 된 열. 그런 폐를 끼쳐 드려 죄송합니다. – KaBi

관련 문제