VBA 遍历多列中的每一行,如果满足条件,则将一组值粘贴到单独的范围内

问题描述 投票:0回答:0

我有一个包含大量列但只有 27 行的工作表。我正在循环的数据从 B3 列开始。我需要遍历每一行,数据从每列的第 3 行开始。如果单元格不为零,则将 COLUMN A 中的值粘贴到同一行中,并将该值粘贴到最后一行下方两个单元格中。

完整的表格将有数千列。

我用的代码:

子副本C()

Dim i As Long
Dim x As Integer
Dim col As Integer

lastrow = Worksheets("macro testing").Cells(Rows.Count, 1).End(xlUp).Row + 2
lastcol = Worksheets("macro testing").Cells(1, Columns.Count).End(xlToLeft).Column + 2

x = 2
col = 2

For i = 3 To lastrow
    If Cells(i, x).Value <> 0 Then
        Cells(lastrow, col).Value = Cells(i, 1).Value
        col = col + 1
        x = x + 1
    End If
    Next i

结束子

这仅适用于前两列(您会看到正确的日期在每列的最后一行下方吐出两行),然后迭代结束。我认为这是因为计数器只到最后一行但我不知道如何修复它以便它继续遍历所有列。

所以我需要输出拉出 A 列中与每列中第一个非零单元格对应的日期。

此外,我还需要运行一个公式,说明如果单元格 <> 0 和它后面的单元格确实 = 0,然后将相应的日期粘贴到最后一行下方第四个单元格的 A 列中。不确定我是应该嵌套一个 ElseIf 还是运行一个不同的子程序?

谢谢你

loops for-loop if-statement copy-paste
© www.soinside.com 2019 - 2024. All rights reserved.