将来自多个工作表的过滤数据合并到单个工作表中
问题描述:
有一个工作簿,该工作簿使用多个工作表(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