为了让有碰到同样问题的朋友能学习,我把4楼帮我写的程序发出来。
Sub test()
Dim crr()
Set sht = Sheets("基本量")
Set sht1 = Sheets("筛选")
a = sht.[A65536].End(3).Row
arr = sht.Range("A1:G" & a)
brr = sht1.Range("A1:G6")
'获取 计算序数所在行
For i = 3 To a
If arr(i, 1) = brr(2, 3) Then
c = i
Exit For
End If
Next
If c >= brr(3, 3) Then
For i = c To c - brr(3, 3) + 1 Step -1
If arr(i, 3) >= brr(2, 5) - brr(2, 7) And arr(i, 3) <= brr(2, 5) + brr(2, 7) Then '条件1
If arr(i, 4) >= brr(3, 5) - brr(3, 7) And arr(i, 4) <= brr(3, 5) + brr(3, 7) Then '条件2
If arr(i, 5) >= brr(4, 5) - brr(4, 7) And arr(i, 5) <= brr(4, 5) + brr(4, 7) Then '条件3
If arr(i, 6) = brr(5, 5) Then '条件4
If arr(i, 7) = brr(6, 5) Then '条件5
If d < 99 Then
d = d + 1
ReDim Preserve crr(0, d - 1)
crr(0, d - 1) = arr(i, 1)
End If
End If
End If
End If
End If
End If
Next
sht1.Range("I2").Resize(UBound(crr, 2) + 1, 1) = Application.Transpose(crr)
Else
xx = MsgBox(brr(2, 3) & "前面的行数少于" & brr(3, 3) & "行", , "一个很温馨的提示!")
End If
End Sub
|