excel - 循环不删除所有必需的行
问题描述
我的代码应该计算 WIP 工作表中的行数,然后遍历行并删除一行,如果 B 列中的字符串包含单词“out”。
Sub delete()
numrows = Worksheets("WIP").Cells(Rows.Count, "A").End(xlUp).Row
For x = 1 To numrows
If InStr(1, lCase(Range("B" & x)), "out") <> 0 Then
Rows(x).Delete
End If
Next
End Sub
代码正在运行,没有出现任何错误,但它只删除了一些行。假设 B 列中有 100 行包含单词“out”。我将运行代码一次,它会删除几行。然后我再次运行它,它又摆脱了一些。如果我运行代码足够多次,它将摆脱所有正确的行。
我不确定为什么第一次没有删除所有行,任何帮助将不胜感激。谢谢。
解决方案
代替:
For x = 1 To numrows
和:
For x = numrows to 1 Step -1
如果向前运行,循环索引会损坏。
推荐阅读
- keycloak - 带有刷新令牌的 Keycloak 客户端凭据授予类型
- php - 如何在mysql查询Php中计算时间
- php - 解耦 vuejs 客户端的 Laravel 护照身份验证问题
- jquery - 单击时链接不会改变颜色
- google-apps-script - 在表格中选择下一行时更新电子表格侧栏中的值
- c# - 为什么 IIS 过滤掉使用原始 TCP 套接字发送的 HTTP POST 请求并在写入后立即关闭
- mysql - 使用 SQL 查询设置验证规则
- windows - BATCH 从 txt 文件中获取特定字符串
- postgresql - 从 shell 运行参数化查询时,“:”处或附近出现语法错误
- http - 当异步请求达到 2 分钟时出现 502 错误网关