简体   繁体   English

如何遍历 VBA 中的行(Excel)

[英]How to loop through rows in VBA (Excel)

I want to loop through a lot of data—5,734 rows to be exact.我想遍历大量数据——确切地说是 5,734 行。 This is what I want to do for all rows:这是我想要对所有行执行的操作:

Private Sub CommandButton1_Click()
a = Worksheets("Sheet1").Cells(Rows.Count, 1).End(xlUp).row

Range("A2:A14").Copy Range("D2:D14")
("B2:B14").Copy Range("D15:D27")
Range("C2:C14").Copy Range("D28:D40")

Assuming that your data looks like this (colour to show more easily the groups):假设您的数据看起来像这样(颜色更容易显示组):

在此处输入图像描述

The following code will paste each group (yellow, green) to the "Result" column.以下代码将每个组(黄色、绿色)粘贴到“结果”列。

Code:代码:

Option Explicit

Sub copy_paste()

Dim lrow As Long
Dim i As Long
Dim j As Long

Dim ws As Worksheet
Set ws = ActiveWorkbook.Worksheets("Sheet1") 'Set the name of the sheet

lrow = ws.Cells(Rows.Count, "A").End(xlUp).Row 'Find the last row in column A

For i = 2 To lrow Step 13 'Loop every group (group of 13 rows) in column A
    For j = 1 To 13 Step 13 'For each group, copy and paste
        ws.Cells(i, "A").Resize(13).Copy ws.Cells(Rows.Count, "D").End(xlUp).Offset(1, 0) 'Copy the group and paste it to the column D. Offset by one to not overwrite the last row
        ws.Cells(i, "B").Resize(13).Copy ws.Cells(Rows.Count, "D").End(xlUp).Offset(1, 0)
        ws.Cells(i, "C").Resize(13).Copy ws.Cells(Rows.Count, "D").End(xlUp).Offset(1, 0)
    Next j
Next i

End Sub

Result:结果:

在此处输入图像描述

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM