如何将工作簿中的行复制并粘贴到另一个具有非连续行的行
How to copy and paste rows from workbook to another with non consecutive rows
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, copy 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 sheet 到 Y sheet.
简单的方法就是使用循环遍历您的操作范围。这样您就不必复制粘贴代码了:
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
语句中使用逗号分隔的字符串识别范围地址来重用复制粘贴代码的。例如,如果您想添加另一个复制范围,您可以将其添加到末尾。
例如:
' Also add A50:AX50 to the copy-paste operation.
For Each rangeCells In Split("A7:AX7,A23:AX23,A50:AX50", ",")
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, copy 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 sheet 到 Y sheet.
简单的方法就是使用循环遍历您的操作范围。这样您就不必复制粘贴代码了:
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
语句中使用逗号分隔的字符串识别范围地址来重用复制粘贴代码的。例如,如果您想添加另一个复制范围,您可以将其添加到末尾。
例如:
' Also add A50:AX50 to the copy-paste operation.
For Each rangeCells In Split("A7:AX7,A23:AX23,A50:AX50", ",")