【问题标题】:Copy paste loop vba - overwrites the current cell复制粘贴循环 vba - 覆盖当前单元格
【发布时间】:2019-09-14 16:36:15
【问题描述】:

如果创建可以从一张纸复制并粘贴到另一张纸的 vba,我正在这个过程中。

这是循环:

j = Archive.Range("A12", Archive.Range("A12").End(xlToRight).Columns.Count --> count of sheet 2 

(参考表 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,则不会继续到下一个单元格。我希望它不断复制将数据粘贴到下一个可用列。

【问题讨论】:

  • 你需要更新jinside循环。 1 + j 不会更改 j 的值。 j = j + 1 会。

标签: excel vba excel-2016


【解决方案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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-05-20
    • 2014-02-21
    • 2018-05-31
    • 1970-01-01
    • 1970-01-01
    • 2014-02-18
    • 1970-01-01
    相关资源
    最近更新 更多