【发布时间】:2015-11-06 02:33:31
【问题描述】:
拥有一个使用多个工作表 (15+) 的工作簿,这些工作表用于保存多行制造商数据。我们通过特定列输入所需的数量来选择要订购的商品。我们使用带有复制到选项的高级过滤将所有包含数量 > 0 的行项目移动到每个工作表中的特定区域。每个工作表的复制到范围 (P9:V3000) 都是相同的。我想编写一个 vba 宏来将每个工作表中的高级过滤数据复制并组合到名为(设备列表)的工作簿中的单独工作表中。我的挑战是只选择包含单元格下方数据的单元格(P9:V9)。 P9:V9 是标题行,下面的所有内容 (P10:V3000) 都是我要复制的数据。
以下是我使用的特定于一个工作表的代码(“Ansul 设备”)当我在下面有多个行项目时,该代码有效(P9:V9)。当我只有一个项目代码行时 "Range(Selection, Selection.End(xlDown)).Select" 选择 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
【问题讨论】:
标签: vba