2017-09-28 4 views
1

하나의 Excel 파일에서 다른 Excel 파일로 선택한 셀 범위를 복사하는 매크로를 작성하고 싶습니다. 그 코드를 시도했지만 작동하지 않습니다. 내가 볼 수있는 유일한 동작은 wbk 및 wbk 1 통합 문서가 열려 있지만 나머지 코드는 실행되지 않으므로 필요한 코드를 복사 할 수 없습니다. 어떤 아이디어가 잘못 되었나요?하나의 Excel 파일에서 다른 Excel 파일로 선택 행을 복사하는 방법

Sub new() 

    Dim wbk As Workbook 
    Dim wbk1 As Workbook 

    Set wbk = Workbooks.Open("C:\Users\Marcin\Desktop\plik zrodkowy.xlsm") 
    Set wbk1 = Workbooks.Open("C:\Users\Marcin\Desktop\Zeszyt2.xlsm") 

    ' now you can manipulate the data in the workbook anyway you want, e.g. ' 

    Dim x, y As Variant 
    x = wbk.Worksheets("Sheet1").Range(Cells(1, 1), Cells(13, 2)) 
    y = wbk1.Worksheets("Sheet1").Range(Cells(1, 20), Cells(13, 23)) 
+0

코드는 두 개의 통합 문서를 열고 그 중 일부 데이터를 읽습니다. 정확히 무엇을하고 싶니? –

+0

@Marcin : 'Dim x, y As Variant'선언은 당신이 생각하는 것처럼 보이지 않습니다 : 변수'y'는 Variant로 명시 적으로 선언되었지만 변수'x' **는 Variant로 선언됩니다 ** Variant는 없으므로 변수'x'에 대한 변수 유형의 선언. 이것은 VBA이고 다른 것입니다 ... 만약 당신이 다음과 같은'Dim x, y As Double'을한다면'y'는 "Double"타입이고'x'는 여전히 Variant입니다 :-) 올바른 방법은'Dim x 변종으로, y 변종으로 – Gene

답변

0

코드에 작업이 없습니다. 첫 번째 부분은 통합 문서를 열고 변수를 선언하고 설정하지만 아무 것도하지 않습니다. 복사 할 경우 범위는이 코드 줄을 추가 : 도움을

x.Copy (y) 
1

모두에게 감사, 내 코드를 편집 할 말을하고 내가 원하는처럼 지금은, 작동, 여기가에 사람을 도울 수 있다면 내 대구입니다 미래 :) 저는 폴란드 출신의 개발자이기 때문에 "Arkusz1"대신 영어 버전의 Excel을 사용하는 경우 "Sheet1"을 사용해야합니다. 감사합니다 Marcin

Dim strPath2 As String 

Dim wbkWorkbook1 As Workbook 
Dim wbkWorkbook2 As Workbook 
Dim wbThis As Workbook 

'define paths and filenames 
strPath2 = "C:\Users\Marcin\Desktop\plik zrodkowy.xlsm" 
Set wbThis = ThisWorkbook 
'open files 

Set wbkWorkbook2 = Workbooks.Open(strPath2) 
Set Workbook1 = ThisWorkbook 
'copy the values across 
'### change the sheet and range to what you need 
'wbkWorkbook2.Worksheets("Arkusz1").Range("A1:B3").Value = _ 
    wbkWorkbook1.Worksheets("Arkusz1").Range("A1:B3").Value' 

wbThis.Worksheets("Arkusz1").Range("E1:F3").Value = 
wbkWorkbook2.Worksheets("Arkusz1").Range("A1:C3").Value 

'close the workbook 
wbkWorkbook2.Close (True) 
관련 문제