首页 > 解决方案 > 如果一个单元格为空白而另一个不是,则复制并粘贴

问题描述

因此,随着代码继续运行,数据被粘贴到 B 列中,它会进行条件检查以查看 B 列中是否有任何值,并将值粘贴到相邻的 A 列中。我需要让它进行两次条件检查:

如果 b 列中有值,然后在粘贴之前检查 A 列中是否有值,这样它就不会覆盖已经粘贴的不同数据。

For Each Cell In y.Sheets("Compiled").Range("A:B")
    If Range("B:B").Value <> "" And Range("A:A").Value = "" Then
    Cell.Offset(0, -1).PasteSpecial xlPasteValues
    End If
Next

标签: excelvba

解决方案


你很接近,不要尝试循环多列范围:

Sub Test()

For Each Cell In y.Sheets("Compiled").Range("B:B")
    If Cell.Value <> "" And Cell.Offset(0, -1).Value = "" Then
        Cell.Offset(0, -1).Value = Cell.Value
    End If
Next

End Sub

注意:Range("B:B")您正在遍历可能不必要的每个单元格。如果你使用一个lastrow值,或者像Range("B2:B1000"). 或者你可以使用一个标准来退出你的循环,比如If Cell.Value = "" Then Exit For.


推荐阅读