如何将行从工作簿复制并粘贴到不连续的行

Private Sub CommandButton21_Click() Dim x As Workbook Dim y As Workbook '## Open both workbooks first: Set x = Workbooks.Open("Name of Copied Document") Set y = Workbooks.Open("Name of Pasted Document") 'Now, copoy what you want from x: x.Sheets("Report Data").Range("A7:ax7").Copy 'Now, paste to y worksheet: y.Sheets("Jan").Range("A7:ax7").PasteSpecial 'Close x: x.Close End Sub 

我正在使用此代码将现有数据中的行复制并粘贴到同一行中的另一个工作簿中。 我想从A7:AX7复制,也从A23:ax23,但不希望之间的行。 最终的结果是复制的数据进入从X页面到Y页面的同一行。

简单的方法就是使用循环迭代你的操作范围。 这样你就不必复制粘贴代码:

 Private Sub CommandButton21_Click() Dim x As Workbook Dim y As Workbook '## Open both workbooks first: Set x = Workbooks.Open("Name of Copied Document") Set y = Workbooks.Open("Name of Pasted Document") Dim rangeCells As Variant For Each rangeCells In Split("A7:AX7,A23:AX23", ",") 'Now, copy what you want from x: x.Sheets("Report Data").Range(rangeCells).Copy 'Now, paste to y worksheet: y.Sheets("Jan").Range(rangeCells).PasteSpecial Next 'Close x: x.Close End Sub 

请注意,我如何通过在Split语句中使用逗号分隔的string标识范围地址来复制粘贴代码。 例如,如果您想添加另一个复制范围,您可以将其添加到最后。

例如:

  ' Also add A50:AX50 to the copy-paste operation. For Each rangeCells In Split("A7:AX7,A23:AX23,A50:AX50", ",")