2015-01-29 9 views
0

도움을 주셔서 감사합니다! 기존 통합 문서에 데이터를 복사하기 위해이 코드를 변경하는 방법 (.xlsm 형식의 유일한 차이점은 파일 이름이 1.xlsm, ..., 50.xlsm이므로 새 파일을 만들지 않는 것입니다. 같은 폴더)? 그리고 더 많은 셀 (B2 셀부터 5 번째 셀까지)이 있다면 범위 lm = Range("B2,G2,L2")을 지정하는 방법은 무엇입니까?한 통합 문서의 데이터를 다른 통합 문서로 복사

나는 등 Workbooks.Open ("1.xlsm") Workbooks.Open ("2.xlsm") 사용하여 기존 통합 문서에 데이터를 복사 할 시도했다가 (SaveAs로) 이름으로 & ".xlsm"를 추가 저장해야 할 때.

Sub CopyM() 
    Dim lm As Range, r As Long, c As Long 
    Set lm = Range("B2,G2,L2"): Application.ScreenUpdating = False 
    For r = 2 To Cells(Rows.Count, 1).End(xlUp).Row 
    Workbooks.Add 
    For c = 0 To 4 
     lm.Offset(r - 2, c).Copy Cells(r + c, 2) 
    Next 
    With Workbooks(Workbooks.Count) 
     .SaveAs lm.Offset(r - 2, -1).Value: .Close 
    End With 
    Next 
    Application.ScreenUpdating = True 
End Sub 
+0

에 오신 것을 환영를 사용하여 루프에서 lm에 추가 셀을 추가 할 수 있습니다! 이미 시도한 내용과 작동하지 않는 내용, 이미 정보를 찾은 곳을 말할 때 더 나은 응답을 얻을 수 있습니다. Excel VBA 도움말에서 '워크 북'과 '범위'를 찾아보십시오. – aucuparia

+0

aucuparia 고맙습니다. workbooks.open (기존 통합 문서에 데이터 추가) 사용에 문제가 있습니다. 지금 당장 VBA를 배우고 있으며, 저에게 다소 어려움이 있습니다. – Samuel

+0

오케이, 멋지다 - "나는 'workbooks.open'을 사용해 보았습니다. <어떤 코드를 추가하십시오. 그러나 xyz가 발생했기 때문에 작동하지 않았습니까?'라는 질문을 편집 할 것을 제안 할 수 있습니까? – aucuparia

답변

0

당신이 열어 본 올바른 통합 문서를 참조 할 수있는 방법이 필요하다고 생각됩니다. 이 작업을 수행하는 방법은 개체 변수에 workbook를 할당하는 것입니다, 그 변수를 사용하면 통합 문서를 참조해야 할 때마다 사용하십시오 range에 추가 셀을 추가 들어

Dim wb as Workbook 
Set wb = Workbooks.Open("yourfilename.xlsx") 
'... 
    lm.Offset(r - 2, c).Copy wb.Cells(r + c, 2) 
'... 
With wb 
    .SaveAs lm.Offset(r - 2, -1).Value: .Close 
End With 

을, 당신은 단지 추가 셀을 입력 할 수 있습니다 쉼표로 구분 된 참조 (예 : Range("B2,G2,L2,Q2,V2")). 이러한 세포가 변하지 않는다면 괜찮습니다. 또한 더 많은 유연성을 위해 당신은 Union() 기능, 예컨대 : 유래하는

Dim col As Long 
Dim lm As Range 
Set lm = Range("B2") 
For col = 7 To 256 Step 5 
    Set lm = Union(lm, Cells(2, col)) 
Next col 
+0

도와 주셔서 대단히 감사합니다! – Samuel

관련 문제