我在VBA中构建一个宏来执行许多不同的功能,其中一个功能就是将数据从不同的电子表格复制到报表中。将提供数据的主电子表格包含所有客户端的数据,我正在使用VLOOKUP,然后导入与该客户端相关的所有数据。有没有办法:
1)向下查看第一项#N/A
的列,然后选择其上方的所有数据(拉出第一个#N/A
的行号将非常有用,并使第二项变得容易
2)删除行是列U
是#N / A - 我发现的问题是循环非常大并且需要很长时间,我使用类似于下面的链接< / p>
I want to delete the row if columns C,D and E has #N/A using VBA
答案 0 :(得分:1)
这够快吗?:
Sub Macro1()
Dim N As Long, rFilter As Range
N = Cells(Rows.Count, "U").End(xlUp).Row
Application.ScreenUpdating = False
Application.Calculation = xlCalculationManual
Set rFilter = Range("U1:U" & N)
Set rr = Range("U2:U" & N)
rFilter.AutoFilter Field:=1, Criteria1:="#N/A"
Set rkill = rr.Cells.SpecialCells(xlCellTypeVisible)
rkill.EntireRow.Delete
Application.ScreenUpdating = True
Application.Calculation = xlCalculationAutomatic
rFilter(1).AutoFilter
End Sub