excel - 如果一个单元格为空白而另一个不是,则复制并粘贴
问题描述
因此,随着代码继续运行,数据被粘贴到 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
解决方案
你很接近,不要尝试循环多列范围:
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
.
推荐阅读
- python - 文本小部件中的滚动条仅出现在底部
- ubuntu - 在 Ubuntu 18.04 上的 Python 3.7 上安装 wxPython
- html - 根据屏幕大小更改 CSS
- java - 在sqlite java中转义单引号字符串
- c# - 如何为 Azure Blob 存储中的文件夹生成共享访问签名?
- javascript - 单击时如何获取数据表中的特定数据值-VueJS?
- javascript - 用momentjs在几天内获得一个过滤器数组
- ios - 您可以通过 Apple 的 Photokit/API 以编程方式将照片隐藏在 iOS 的照片应用程序的隐藏文件夹中吗(或者我是否坚持必须手动操作)
- typescript - 键入类的动态映射
- javascript - then 使用递归承诺循环