复制粘贴循环 vba - 覆盖当前单元格
Copy paste loop vba - overwrites the current cell
我正在创建 vba,将一个 sheet 复制并粘贴到另一个。
这是循环:
j = Archive.Range("A12", Archive.Range("A12").End(xlToRight).Columns.Count --> count of sheet 2
(参考是 sheet 1:如果第 15 行的任何列为 1,则它将复制到存档)
For i = k to 2 Step -1
If Reference.Cells(15, i). Value = 1 Then Reference.Columns(i).Copy
Archive.Cells(1, 1 + j).PasteSpecial
End If
Next i
宏正在运行,但循环中的问题是它只复制并粘贴到下一个可用单元格,如果来自单元格 15 的另一条记录等于 1,则不会继续到下一个单元格。我希望它连续复制粘贴数据到下一个可用列。
您需要在循环内更新 j
。
例如,如果 j
最初等于 15,那么对于循环的每次迭代,1 + j
将等于 16。 1 + j
永远不会更改 j
的值。
试试看:
If Reference.Cells(15, i). Value = 1 Then
j = j + 1 ' update j
Reference.Columns(i).Copy
Archive.Cells(1, j).PasteSpecial
End If
我正在创建 vba,将一个 sheet 复制并粘贴到另一个。
这是循环:
j = Archive.Range("A12", Archive.Range("A12").End(xlToRight).Columns.Count --> count of sheet 2
(参考是 sheet 1:如果第 15 行的任何列为 1,则它将复制到存档)
For i = k to 2 Step -1
If Reference.Cells(15, i). Value = 1 Then Reference.Columns(i).Copy
Archive.Cells(1, 1 + j).PasteSpecial
End If
Next i
宏正在运行,但循环中的问题是它只复制并粘贴到下一个可用单元格,如果来自单元格 15 的另一条记录等于 1,则不会继续到下一个单元格。我希望它连续复制粘贴数据到下一个可用列。
您需要在循环内更新 j
。
如果 j
最初等于 15,那么对于循环的每次迭代,1 + j
将等于 16。 1 + j
永远不会更改 j
的值。
试试看:
If Reference.Cells(15, i). Value = 1 Then
j = j + 1 ' update j
Reference.Columns(i).Copy
Archive.Cells(1, j).PasteSpecial
End If