我必须复制数百个2700行x 3列范围,然后将它们粘贴到第一个空行中的另一个工作表中(因此从工作表“CPR Test 2013-2015”复制的第一个范围将粘贴到第1行在“地图”工作表上,第二个范围将粘贴到“地图”中的第2701行,第三个范围将粘贴到“地图”中的第5402行等。如果有必要知道我为什么这样做,我在底部包含了解释。如果没有,我会在这里继续解决问题:&/ p>
需要复制的每个范围与下一个范围分开6列。因此,例如,第一个范围是(XG2:XI2700),六列之后我们有第二个范围(XP2:XR2700),最后一个范围是(BHP2:BHR2700)。*
*注意:XG是第631列,XI是第633列; XP是列640,XR是列642;必和必拓是第1576栏,BHR是第1578栏。
将范围粘贴到工作表“Maps”中时,能够将它们粘贴到第一个空行中会很好,因为范围中的行数将来会有所不同。如果无法做到这一点,那么每隔2700行将范围粘贴到“地图”中就可以了。
Pasting the first range in "Maps"
以下是我在VBA编辑器中尝试过的一些代码(忍受我,我是初学者):
Sub CPR_to_Calculator()
'
' CPR_to_Calculator Macro
'
'
Application.ScreenUpdating = False
Sheets("CPR Test 2013-2015").Select
For ColNum = 631 To 1578 Step 7
Sheets("CPR Test 2013-2015").Select
Range(Cells(2, ColNum), Cells(2700, ColNum + 2)).Select
Range(Selection, Selection.End(xlDown)).Select
Selection.Copy
Sheets("Maps").Select
Selection.Cells(Rows.Count, 1).End(xlUp).Offset(1, 0).PasteSpecial xlPasteValues
Application.CutCopyMode = False
Application.ScreenUpdating = True
Next ColNum
End Sub
为什么我这样做:我正在使用“CPR 2013-2015”表中的数据计算“地图”表中学生和大学之间的距离。已经设置了“地图”工作表,只需按一下按钮即可计算邮政编码之间的距离。
“CPR Test 2013-2015”中每个范围的三列是ID,学生邮政编码和学校邮政编码。我需要在“地图”表中计算学生邮政编码和学校邮政编码之间的距离。由于每个范围都属于特定的大学,数据集中有数百所大学,我不想一次计算一所大学的学生和学校邮政编码之间的距离。我宁愿复制所有大学的范围,并将它们粘贴到彼此叠加的“地图”表格中。这样,我只需点击“地图”中的计算按钮,它就会计算每行中邮政编码之间的距离。然后,我可以在“CPR Test 2013-2015”中使用INDEX MATCH公式来提取每个唯一ID的距离数据。
答案 0 :(得分:0)
除非你想保留形式;最好直接分配值。
Sub CPR_to_Calculator()
Dim y As Long
With Worksheets("CPR Test 2013-2015")
For y = 631 To 1582 Step 9
Worksheets("Maps").Range("A" & Rows.Count).End(xlUp).Offset(1).Resize(2699, 3).Value = .Cells(2, y).Resize(2699, 3).Value
Next
End With
End Sub