Excel 显示大于特定数字的值

Excel 显示大于特定数字的值,excel,vba,Excel,Vba,我有一份Excel报告,其中列出了客户和我们在客户身上工作的小时数 我想在这个工作簿中创建一个单独的工作表,通过VBA将我们工作超过40小时的客户机拉过来 例如,我报告的基本版本如表1所示 客户端--客户端ID--小时数 客户1---1947---30 客户2---6465---46 客户3---8787---20 客户4---7878---15 客户5---4873---48 我想显示我的新工作表 客户端--客户端ID--小时数 客户2---6465---46 客户5---4873---48

我有一份Excel报告,其中列出了客户和我们在客户身上工作的小时数

我想在这个工作簿中创建一个单独的工作表,通过VBA将我们工作超过40小时的客户机拉过来

例如,我报告的基本版本如表1所示

客户端--客户端ID--小时数

客户1---1947---30

客户2---6465---46

客户3---8787---20

客户4---7878---15

客户5---4873---48

我想显示我的新工作表

客户端--客户端ID--小时数

客户2---6465---46

客户5---4873---48


我想知道它是否是一个while循环,但它是否会在发现第一个值大于40时立即中断,然后就不会继续到下一组值?

我录制了一个快速宏,以获取筛选条件的代码,然后使用Copy Destination:=。录制宏并查看它们是开始学习VBA的好方法

Sub Shorty()

    Cells.Select
    Selection.AutoFilter
    ActiveSheet.UsedRange.AutoFilter Field:=3, Criteria1:=">40", _
        Operator:=xlAnd
    ActiveSheet.UsedRange.Copy Destination:=ActiveWorkbook.Sheets("Sheet2").Range("A1")
    Selection.AutoFilter

End Sub

您可以找到复制方法的文档

请参阅而不是VBA。我想你会发现它更灵活,也能达到同样的效果。你可以用逻辑将范围读入一个集合,过滤掉你不想要的范围,然后用一种方法将该集合放入另一个表中。这样做的缺点是,您将把信息保存在内存中。我们谈论的客户有多少?问题是每个客户都有2到3名员工在该客户上工作。例如,客户端1总共有43个小时。工人A工作了20小时,工人B工作了10小时,工人C工作了剩余的13小时,总共工作了43小时。这是很多客户…我们谈论的是300个客户。这不是很大,但我能用40小时以上的时间越快地把它们分开就越容易。在一张表上,我有每个客户的工时……然后我有一张表,上面只显示了每个客户的总工时。太棒了,我会测试一下。非常感谢你!