查找超过一定金额的客户

时间:2014-03-12 19:44:53

标签: excel vba excel-vba

我想使用VBA搜索客户名称列表和他们花费的金额(分别在A和B栏中),并返回一个结果列表,其中包含那些名字(和相应数量)的人已经花费超过500美元,在同一张纸上的另外两列中,比如列D&即

非常感谢任何帮助。谢谢!

2 个答案:

答案 0 :(得分:0)

子程序中的这样的for循环可以起作用:

i = 1
For j = 1 To WorksheetFunction.CountA(Columns(1))
    If Cells(j, 2) > 500 Then Cells(i, 3) = Cells(j, 1): i = i + 1
Next j

这只打印名称,但使用相同的逻辑,您也可以打印相应的数字。祝你好运。

答案 1 :(得分:0)

这是一个非循环的建议。应该尽可能快地获得

Sub Macro1()

Dim lr As Long


Application.ScreenUpdating = False

With Sheet1
    lr = WorksheetFunction.CountA(.Columns(1))
    .Range("A1:B" & lr).AutoFilter
    .Range("$A$1:$B" & lr).AutoFilter Field:=2, Criteria1:=">500"
    .Range("$A$1:$B" & lr).SpecialCells(xlCellTypeVisible).Copy .Range("D1")

    .Range("A1:B" & lr).AutoFilter
End With

Application.ScreenUpdating = True
End Sub

假设工作需要在sheet1上进行,你可以优化"如何计算最后一行"部分要有点强大,但这应该让你接近......