2015-01-19 2 views
0

wkbk (B) goto 행 (??) wkbk (A)에 입력 된 값을 열려면 매크로가 필요합니다. 특정 열을 복사하고 wkbk (A)의 col (j14)에 붙여 넣습니다.워크 시트 간의 셀 복사

Sub AutofillData() 

Dim wkbkSource As Workbook 

Dim strPath As String 

Dim myRange As Range 

Dim i As Integer 

Dim c As Range 



    Application.ScreenUpdating = False 

    strPath = "\\" 

    Set wkbkSource = Workbooks.Open(strPath & Range("A13").Value & ".xls?") 


     Windows("Book1.xlsm").Activate 

     Set myRange = Range("i14:i25") 

     For Each c In myRange 

      i = c.Value 

     wkbkSource.Activate 
     Worksheets("Main Data").Select 

    Range("D" & i & ":O" & i).Select 
    Selection.Copy 


    Windows("Book1.xlsm").Activate 
    Range("J14").Select 
    Sheets("Data").Cells(Rows.Count, 9).End(xlUp).Offset(1, 0).Select 

    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ 
     :=True, Transpose:=False 
    Range("J14").Select 

Application.CutCopyMode = False 

Next 

wkbkSource.Close savechanges:=False 

Application.ScreenUpdating = True 


End Sub 
+0

오류가이 라인 시트 ("데이터")에있을 것 같다 그것을 할 것입니다. 세포 (Rows.Count, 9) .END (xlUp) .Offset (1, 0). 내가 9시 10 분을 변경하려고하면 선택하십시오. 도와 줘서 고마워. – Ade

+0

어떤 오류가 발생합니까? – RBarryYoung

+0

@Ade이 "있는 것 같습니다"하지 않을 것입니다. 라인이 오류를 유발하고 오류 (또는 오류 번호)가 무엇인지 확인하십시오. –

답변

0

Sub AutofillData() 

Dim wkbkSource As Workbook 

Dim strPath As String 
Dim myRange As Range 
Dim i As Integer 
Dim c As Range 
Dim wkbkTarget As Workbook 

Application.ScreenUpdating = False 

strPath = "C:\temp\" 

Set wkbkA = ThisWorkbook 
Set wkbkB = Workbooks.Open(strPath & Range("A13").Value & ".xlsx") 

    Set myRange = wkbkA.Sheets("Sheet2").Range("i14:i25") 

    offs = 0 
    For Each c In myRange 

     i = c.Value 

     wkbkB.Worksheets("Main Data").Range("D" & i & ":O" & i).Copy 

     wkbkA.Sheets("Data").Range("J14").Offset(offs, 0).PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, _ 
     SkipBlanks:=True, Transpose:=False 

     Application.CutCopyMode = False 
     offs = offs + 1 

    Next 

wkbkB.Close savechanges:=False 
Application.ScreenUpdating = True 

End Sub 
+0

안녕하세요 @ignotu, 코드 시도했지만이 오류가 발생하는"런타임 rror '1004'응용 프로그램 정의 또는 개체 정의 오류. 범위 ("D"& i & ": O"& i) .Copy. 감사합니다 – Ade

+0

자신의 통합 문서에서 시트 이름을 수정해야합니다. 그런 다음'F8'을 눌러 코드를 실행 해보십시오. 즉시 값 ('CTRL + G')을 사용하여'? '로 라인을 시작하여 표현식 값을 평가 한 다음 표현식을 입력하고 마지막으로 Enter를 누릅니다. – ignotus

+0

마지막으로이 작업을 완료했습니다. 고마워요 @ignotus – Ade

관련 문제