这个公式是指定搜索sheet2页中的B列的嘛?能否更改为搜索sheet2中所有单元格?
追答那样的话,会增加,运算速度,速度很慢的。
追问有这个需求,或指定搜索C列到E列的范围
追答用普通循环或数组
数组速度快点,稍等下哈
Sub aa()
Range("A5:D5000") = ""
Dim i, x, y
x = Sheets(2).Range("c65536").End(xlUp).Row
For i = 2 To x
n = WorksheetFunction.CountIf(Sheets(2).Rows(i), [b1])
If n > 0 Then
y = Range("a65536").End(xlUp).Row
Sheets(2).Rows(i).Copy Cells(y + 1, "a")
End If
Next
End Sub
这个也快,查找每行,不限列,只要存在,就可以
注意SHEET2表的 A列和C列是不能有空行
您好,搜索内容是只要有这个字段就需要搜索出来的,并非单元格内容要完全一致的。和CTRL+F的查找全部的功能差不多。
谢谢了!!!!
Sub aa()
Range("A5:E5000") = ""
Dim i, x, y
x = Sheets(2).Range("c65536").End(xlUp).Row
For i = 2 To x
n = WorksheetFunction.CountIf(Sheets(2).Rows(i), "*" & [b1] & "*")
If n > 0 Then
y = Range("a65536").End(xlUp).Row
Sheets(2).Rows(i).Copy Cells(y + 1, "a")
End If
Next
End Sub
,-------------------------
指定查找C:E列包含B1
Sub aa()
Range("A5:E5000") = ""
On Error Resume Next
Dim i, x, y, brr(1 To 1000, 1 To 5)
x = Sheets(2).Range("A65536").End(xlUp).Row
arr = Sheets(2).Range("a2:e" & x)
For i = 1 To UBound(arr)
If arr(i, 3) Like "*" & [b1] & "*" Or arr(i, 4) Like "*" & [b1] & "*" Or arr(i, 5) Like "*" & [b1] & "*" Then
n = n + 1
brr(n, 1) = arr(i, 1)
brr(n, 2) = arr(i, 2)
brr(n, 3) = arr(i, 3)
brr(n, 4) = arr(i, 4)
brr(n, 5) = arr(i, 5)
End If
Next
[a5].Resize(n, 5) = brr
End Sub