excel - 我正在尝试遍历工作表第 1 行中的每个项目,如果它存在于集合中,则将其删除。但它只是不工作
问题描述
我在这里做错了什么?它只做了一行,但我不知道为什么。
请记住,我对此很陌生,所以请为我简化一下答案。还在学习 :)
Private Sub CommandButton3_Click()
row1 = 2
For Each sh2 In Second
For Each Row In Worksheets("Sheet1").Range("A2:A999")
If Worksheets("Sheet1").Cells(row1, 1) = sh2 Then
Worksheets("Sheet1").Cells(row1, 1).EntireRow.Delete
row1 = row1 + 1
Exit For
End If
row1 = row1 + 1
Next
Next
End Sub
解决方案
向后运行内部循环:
Dim row1 As Long
For row1 = 999 To 2 Step -1
With Sheets("sheet1").Cells(row1, 1)
If .Value = sh2 Then .EntireRow.Delete
End With
Next row1
推荐阅读
- c - 在 ARM macOS 上,当显式 raise()-ing 信号时,堆栈上的一些返回地址会出现乱码
- c - 如何更准确地衡量上下文切换的成本
- javascript - 断点在第一行以外不可用
- c# - 如何动态创建表达式
从一个表达式 ? - google-chrome - AdBlock 认为我的 websocket 请求是广告
- java - 构建错误 Jenkins:org.openqa.selenium.WebDriverException:等待驱动程序服务器启动超时
- php - Laravel 和 Vuejs 的跨域资源共享 (CORS)
- macos - 在网站上下载阻止检查元素的视频
- jenkins-pipeline - 使用 jenkins 管道的 Liquibase 实现
- java - 如何创建包含所有特定对象总和的地图?