我想使用VBA搜索客户名称列表和他们花费的金额(分别在A和B栏中),并返回一个结果列表,其中包含那些名字(和相应数量)的人已经花费超过500美元,在同一张纸上的另外两列中,比如列D&即
非常感谢任何帮助。谢谢!
答案 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上进行,你可以优化"如何计算最后一行"部分要有点强大,但这应该让你接近......