vba - 如何在 VBA 的 for 循环中使用 If 语句?
问题描述
在 D 列中,我试图删除其中包含值的每一行。如果单元格为空白,则不会被删除
For 循环只查看 D2 并删除整行,因为它有一个值。然后循环停止,不再继续。NumRows 值为 9324,因为 A 列中有那么多行。
我被卡住了,无法弄清楚如何让循环继续。谢谢!
Dim VarDeleteLoop as long
Dim NumRows As Long
NumRows = Worksheets("Sheet").Cells(Application.Rows.Count, "A").End(xlUp).Row
For VarDeleteLoop = 2 To NumRows
Cells(VarDeleteLoop, 4).Select
If Cells(VarDeleteLoop, 4).Value = "" Then
Cells(VarDeleteLoop, 4).Select
Else
Cells(VarDeleteLoop, 4).Select
Selection.EntireRow.Delete
End If
Next VarDeleteLoop
解决方案
移除东西时,最好倒着做。这样,如果上一行被删除,您就不需要跟踪下一行的编号。
像这样做你的for循环:
For VarDeleteLoop = NumRows To 2 Step -1
推荐阅读
- javascript - 尝试在插入之前检查 sql 表值是否已经存在
- hadoop - 纱线与 Sqoop 在 Java 版本方面“竞争”
- reactjs - Apollo GraphQL React 刷新令牌(使用 AWS 放大)来自 Promise --> flatMap() 根本没有被触发
- c++ - 我在尝试让 debugPrintfEXT 在着色器中工作时遇到问题
- python - 如何使用“b”作为我的格式指示符来运行“savetxt.numpy”?
- javascript - 防止分成多行的标题将内容向下推?
- bash - bash脚本中通配符的停滞问题
- python - 如何在 Django 应用程序中获取原始本地机器时区?
- java - 具有多个提供程序的 Spring 安全性
- python - Atom 编辑器 - sqlite3.OperationalError:没有这样的表