|
本帖最后由 千年约定 于 2014-9-7 17:37 编辑
要提取不同工作表满足条件的行到“汇总”工作表,请指点一下代码错在哪里,详见附件。
本帖最后由 xdragon 于 2014-9-7 17:36 编辑
- Sub 提取()
- Dim sh As Worksheet, i2&, num&
- For Each sh In Sheets(Array("土", "前", "建", "基", "开"))
- num = sh.Range("I65536").End(xlUp).Row
- For i2 = 2 To num
- If Sheets(sh.Name).Cells(i2, "i").Value <> "0" And Sheets(sh.Name).Cells(i2, "i").Value <> "" Then
- Sheets(sh.Name).Rows(i2).Copy
- Sheets("汇总").Cells(Sheets("汇总").Cells(Rows.Count, "i").End(xlUp).Row + 1, 1).PasteSpecial
- End If
- Next i2
- Next sh
- End Sub
复制代码在你原代码的基础上改的,错误的地方有:
1、sh为工作表对象,所以sheets(sh)这样表示不对,sh.name才是工作表的名称属性
2、对num的赋值过程中,不是activesheet而是每个sh的单元格对象,range("D65536")改为了i列
3、最后你要粘贴到的是汇总表的最后一个非空单元格的下一行,而你的判断依据是I列非空做判断,所以,可以不用point变量。
4、sheets(sh).row(i2).select 如果不是活动的工作表是无法用select的。
|
|