将来自多个工作表的过滤数据合并到单个工作表中

问题描述:

有一个工作簿,该工作簿使用多个工作表(15+)来保存多行制造商数据。我们通过特定列输入所需数量来选择订单项目。我们使用高级过滤和复制到选项来将包含数量> 0的所有行项目移动到每个工作表中的特定区域。复制到范围(P9:V3000)对于每个工作表都是相同的。我想编写一个vba宏来将每个工作表中预先过滤的数据复制并组合到名为(设备列表)的工作簿内的单独工作表中。我的挑战是一直只选择包含细胞下方数据的细胞(P9:V9)。 P9:V9是标题行,下面的所有内容(P10:V3000)是我希望复制的数据。将来自多个工作表的过滤数据合并到单个工作表中

以下是我用于特定于一个工作表(“Ansul设备”)的代码当下面有多个订单项(P9:V9)时,代码将起作用。当我只有一个项目代码行 “范围(Selection,Selection.End(xlDown))。选择”选择P10:V10下的每个单元即使它们不包含数据。只选择包含数据的范围(P10:V3000)中的单元的最佳方法是什么?如果可能的话,希望遍历每个工作表。

Sub PC_CombinedCopyTo_EquipmentList() 
'Turn Off Screen Updating 
Application.ScreenUpdating = False 
'Clear the("Equipment List") Copy to Range via macro 
Application.Run ("EquipmentList_ClearCTR") 
'Set imax rows variable which will allow me to select the first blank cells below the header in the ("Equipment List") worksheet 
Sheets("Equipment List").Select 
iMaxRows = Cells(Rows.Count, "A").End(xlUp).Row** 
'Copy Ansul ADF Equipment list 
Sheets("Ansul Equipment").Select 
Range("P10:V10").Select 
Range(Selection, Selection.End(xlDown)).Select 
Selection.Copy 
Sheets("Equipment List").Select 
Range("A" & iMaxRows + 1).Select 
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=True, Transpose:=False 
Application.ScreenUpdating = True 
End Sub 

范围。( “P10:V10”)选择

范围(选择,Selection.End(xlDown))选择

这是正常的,你选择排10你去xlDown,所以选择到工作表的末尾。

尽管我建议避免使用Select,为了消除这种不良成语编辑任何宏生成的代码,我建议这是一个快速修复:

Range("P10:V" & cells(Rows.count, "v").end(xlUp).Row).Select