将variables范围从一个工作簿粘贴到另一个工作簿,从特定单元格开始

我试图通过列“K”在一个封闭的工作表中的列“A”单元格中的数据复制到打开的工作表,从单元格“A4”开始,同时保持源格式。 工作簿A是我试图从中复制的工作簿,Workbook是我正在尝试粘贴的工作簿。

Sub cmdUpdate_Click() Dim LastRow As Long LastRow = Cells(Rows.Count, "A").End(xlUp).Row Workbooks.Open Filename:="path to Workbook A", ReadOnly:=True Windows("Workbook A").Activate Range("A3" & ":K" & LastRow).Select Selection.Copy Workbooks("Workbook B").Cells(Rows.Count, 4).PasteSpecial Paste:=PasteAllUsingSourceTheme 

我收到的错误是“select范围类失败的方法”。

你可以试试这个吗? 这不使用select语句,但仍然复制范围与显式声明相同,而不是使用select语句(应该尽可能避免)

 Sub cmdUpdate_Click() Dim LastRow As Long LastRow = Cells(Rows.Count, "A").End(xlUp).Row Workbooks.Open Filename:="path to Workbook A", ReadOnly:=True Workbooks("Workbook A").Range("A3" & ":K" & LastRow).Copy Workbooks("Workbook B").Cells(Rows.Count, 4).PasteSpecial Paste:=xlPasteAllUsingSourceTheme 

进一步评论后更新:

你可以试试这个:

 Dim wb1 As Workbook, wb2 As Workbook Dim ws1 As Worksheet, ws2 As Worksheet Dim LastRow As Long Dim rng As Range Set wb1 = Workbooks.Open("path to Workbook A", ReadOnly:=True) Set wb2 = Workbooks("Workbook B") Set ws1 = wb1.Sheets("Relevant Worksheet in A") Set ws2 = wb2.Sheets("Relevant Worksheet in B") LastRow = Cells(Rows.Count, "A").End(xlUp).Row Set rng = ws1.Range("A3" & ":K" & LastRow) rng.Copy With ws2 .Cells(Cells(.Rows.Count, "D").End(xlUp).Row, 4).PasteSpecial Paste:=xlPasteAllUsingSourceTheme End With