excel - 过滤器和整行删除问题
问题描述
我有问题Entirerow.Delete
。
有时我的宏会从工作表中删除所有行,有时它会回到最后的错误处理和跳过顺序。
我试图过滤值,将它们分配给范围并删除范围,但程序执行大约需要 20 分钟,所以我不得不终止处理。
wb_current.Worksheets("RH").Range("A6:V6").AutoFilter Field:=22, Criteria1:=Array("#N/A", ""), Operator:=xlFilterValues
With wb_current.Worksheets("RH")
lng_last_row_main = .Cells(Rows.Count, 1).End(xlUp).Row
If lng_last_row_main > 6 Then
.Rows("7:" & lng_last_row_main).EntireRow.Delete
End If
.AutoFilterMode = False
lng_last_row_main = .Cells(Rows.Count, 1).End(xlUp).Row
End With
我想设置一个过滤器来向我显示特定列中带有空白或 NA 的行,然后删除那些包含这些值的行,然后设置过滤器并获取没有空白行的表。
解决方案
Aleksander,也许我可以帮助你的案子。
根据我对您的问题和预期效果的理解,真的有必要实际使用过滤器吗?如果您使用它只是为了能够删除某一列中的所有空白行,那么一个简单的带有If
函数的循环就足够了。
请参阅下面我提出的代码:
Sub delete_blank_rows()
Dim lastRow As Long
Dim cel As Range
lastRow = ThisWorkbook.Worksheets("RH").Cells(Rows.Count, 1).End(xlUp).Row
'loop through every cell in column C until the last row (lastRow is taken from column A)
For Each cel In ThisWorkbook.Worksheets("RH").Range("C1:C" & lastRow)
'function that evaluates if cell in column C is blank/#N/A and deletes it if yes
If cel.Value = "" Or cel.Value = "#N/A" Then
cel.EntireRow.Delete
End If
Next cel
End Sub
这在我的示例数据上完美运行。请记住,标题位于我的示例数据的第一行 -.Range("C1:C" & lastRow)
我希望这能解决你的问题。
推荐阅读
- r - 在 Nextflow 管道中运行 Rscript
- python - 比较 datetime64[ns] 和时间戳
- google-cloud-platform - 在 Linux 中以用户“自己的”访问权限挂载 GCP 存储桶
- javascript - 如何查找和删除数组中的重复值?
- flutter - 成功登录并在您重新打开应用程序时终止应用程序后,我应该会看到仪表板(主页)
- typescript - 对象签名相同,打字稿显示警告
- reactjs - React 无法启动项目 - 'craco' 未被识别为内部或外部命令
- amazon-web-services - Cloudformation - 使用以前使用的名称重新创建堆栈
- graphql - 字段“cover”不能有选择,因为类型“String”没有子字段
- google-client - 来自 Google Tasks API 的错误任务列表 ID