Excel 宏,不使用“选择”将单元格复制为四行
此代码复制Sheet1中的条目!A2,第1张!B2等,并将其粘贴到活页2上,每个条目之间有3行。我想在不使用的情况下复制此代码。选择Excel 宏,不使用“选择”将单元格复制为四行,excel,vba,Excel,Vba,此代码复制Sheet1中的条目!A2,第1张!B2等,并将其粘贴到活页2上,每个条目之间有3行。我想在不使用的情况下复制此代码。选择 Option Explicit Sub Copy_Paste() Dim i As Integer For i = 1 To 100 Sheets("Sheet1").Select Range("A2,B2,C2,D2,E2").Select ActiveCell.Range(Cells(i, 1), Cells(i, 2)).Se
Option Explicit
Sub Copy_Paste()
Dim i As Integer
For i = 1 To 100
Sheets("Sheet1").Select
Range("A2,B2,C2,D2,E2").Select
ActiveCell.Range(Cells(i, 1), Cells(i, 2)).Select
Selection.Copy
Sheets("Sheet2").Select
Cells(((i - 1) * 4) + 1, 1).Select
ActiveSheet.Paste
Next i
End Sub
到目前为止,这是我所拥有的,但它不起作用
Option Explicit
Sub Copy_Paste()
Dim i As Integer
For i = 1 To 100
Dim ws1 As Worksheet, rng As Range, act As Range
Set ws1 = Worksheets("Data")
Set rng = ActiveSheet.Range("A2,B2,C2,D2,E2")
Set act = ActiveCell.Range(Cells(i, 1), Cells(i, 2))
Selection.Copy
Dim ws2 As Worksheet, rng2 As Range
Set ws2 = Worksheets("Calculate")
Set rng2 = Cells(((i - 1) * 4) + 1, 1)
ActiveSheet.Paste
Next i
End Sub
我在一个vba代码中使用了这种类型的操作:
'do copy from reference "Answers_Source" worksheet
wb.Sheets("Answers_Source").Range("h1:z160").Copy
'now paste the formulas into the student exam workbook
wb2.Sheets("Answers").Range("h1:z160").Paste
因此,您可以根据自己的情况对其进行编辑。您可以使用Range
对象的Offset()
属性
Sub Copy_Paste()
Dim i As Long
For i = 1 To 100
Sheets("Sheet1").Range("A2,B2").Offset(i - 1).Copy Destination:=Sheets("Sheet2").Range("A1:B1").Offset((i - 1) * 4)
Next
End Sub
而如果只需要粘贴值,则会更快:
Sub Copy_Paste_Values()
Dim i As Long
For i = 1 To 100
Sheets("Sheet2").Range("A1:B1").Offset((i - 1) * 4).Value = Sheets("Sheet1").Range("A2,B2").Offset(i - 1).Value
Next
End Sub
你知道你可以说“范围x值=范围y值”: 如果您可以使用
范围(单元格(1,1)、单元格(4,2))
定义范围,那么我很确定您可以在一行中完成所有您想要的操作
ws2.Range("A1:B4").Value = ws1.Range("A1:B4").Value