首页 > 解决方案 > 检查列中的值,允许并非所有列都存在

问题描述

我正在尝试清理从在线数据库导出的原始数据。

最多可以有五列。如果一行中的所有单元格的值为 0,我想删除该行。

用户导出数据时,可以选择排除列,列可以任意排列。

例如,如果数据只包含可能的五列中的两列,我想只检查那两列是否为 0。

标签: excelvba

解决方案


可以做一个大循环查看每一行并查看该行中的所有 5 列是否为空白

Sub test()
Dim sh As Worksheet
Set sh = ThisWorkbook.Sheets("sheetname")
Dim LastRow As Integer
LastRow = sh.UsedRange.Rows.Count - 1

For i = 1 To LastRow
If (sh.Cells(i, 1).Value = "" And sh.Cells(i, 2).Value = "" And sh.Cells(i, 3).Value = "" And _
sh.Cells(i, 4).Value = "" And sh.Cells(i, 5).Value = "") Then
sh.Cells(i, 1).EntireRow.Delete
i = i - 1
Dim newLastRow As Integer
newLastRow = sh.UsedRange.Rows.Count - 1
If i = newLastRow Then
Exit For
End If
End If
Next i
MsgBox ("Done")
End Sub

推荐阅读