我正在尝试使用工作表中的 VBA 循环访问一组单元格,并检查它们是否包含任何数据。 我的电子表格如下:
__A_____B_____C_____D____E_____F____G
1| 3122 -1 -1 3243
2| -1 -1 -1 3243 1 1 1
3| -1 -1 -1 3255 1
5| 4232 2132 -1 3259
6| 7544 1333 324 3259
7| -1 -1 -1 3259 1 2 1
8| -1 -1 -1 3259 1 1 1
9| -1 -1 -1 3267
10| 2121 222 -1 3267
我想删除 E F 和 G 列中没有任何数据的行,但我不确定如何循环遍历行和列。我已经看到了许多关于循环列的说明,但我找不到任何有关如何在二维中循环检查单元格数据的信息。
谢谢
最佳答案
循环行和列的基本思想是需要两个 for
循环。
第一个循环遍历行,第二个遍历列。
我没有使用足够的 VBA 来记住如何删除行,但是如果您向后循环(如下面的代码所示),您永远不会忘记要删除的行。
以下代码应该可以满足您的目的(尽管它需要重构!):
编辑:感谢barrowc以便更正。
Sub remove_some_rows()
Dim i As Long
Dim j As Long
Dim current_cell As Object
Dim beg_row As Long
Dim end_row As Long
Dim beg_col As Long
Dim end_col As Long
beg_row = 1
end_row = 10
beg_col = 1
end_col = 7
Dim empty_col_counter As Integer
For i = end_row To beg_row Step -1
empty_col_counter = 0
For j = end_col To beg_col Step -1
Set current_cell = ThisWorkbook.ActiveSheet.Cells(i, j)
If j > 4 And current_cell.Value = "" Then
empty_col_counter = empty_col_counter + 1
End If
Next j
If empty_col_counter = 3 Then
current_cell.EntireRow.Select
Selection.Delete
End If
Next i
End Sub
关于excel-2007 - 在二维 VBA 中循环遍历 Excel 中的单元格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1836873/