如何将select行从一个Excel文件复制到另一个

我想编写一个macros,将一个选定的单元格范围从一个Excel文件复制到另一个。 我试过这个代码,但是不起作用。 我看到的唯一的行动是wbk和wbk 1工作簿是开放的,但其余的代码不执行,所以我不能复制我所需要的。 任何想法有什么不对?

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, eg ' 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)) 

谢谢大家的帮助,最后我编辑我的代码,现在它的工作,就像我需要的,这里是我的鳕鱼,如果它可以帮助任何人在未来:)我是来自波兰的开发者,所以而不是“Arkusz1”,你应该使用“Sheet1 “如果你使用英文版的Excel。 关心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) 

您的代码缺less任务。 第一部分是打开工作簿,然后你声明和设置variables,但你什么都不做。 如果你想复制范围添加这行代码:

 x.Copy (y)