我有一个电子表格,根据数据透视表(通过ODBC导入)中的数据填充行。我正在使用VLOOKUP,例如:
=VLOOKUP(A8;Data!B1:I298;2;FALSE)
结果类似于
Name1
Name2
Address1
Address2
Postalcode
Country
可能会发生一些枢轴列为空,导致
Name1
0
Address1
0
Postalcode
0
我需要的是某种循环一系列行的函数,例如A8 - A14并删除“空”的行。我的问题是行不是真正的空,它们仍然返回0并包含VLOOKUP公式。
这可以以某种方式实现吗?我希望我有意义。
感谢。
答案 0 :(得分:3)
实施例
代码
Sub Delete0s()
Dim i As Long
For i = Range("A" & Rows.Count).End(xlUp).Row To 1 Step -1
If Range("A" & i) = 0 Then
Range("A" & i).Delete shift:=xlUp
End If
Next i
End Sub
删除0,所以结果
使用autofilter实现相同的结果,通常比循环快一点
码
Sub Delete0s()
Dim ws As Worksheet
Dim rng As Range
Dim lastRow As Long
Set ws = ThisWorkbook.Sheets("Sheet1")
lastRow = ws.Range("A" & ws.Rows.Count).End(xlUp).Row
Set rng = ws.Range("A1:A" & lastRow)
With rng
.AutoFilter Field:=1, Criteria1:="=0"
.Offset(1, 0).SpecialCells(xlCellTypeVisible).EntireRow.Delete
End With
ws.AutoFilterMode = False
End Sub
结果