2012-12-12 49 views
0

我有一些Excel表格的Excel文件。我需要复制所有单元格的数据并将其复制到名为“所有数据”的表单中的另一个Excel文档。然后我需要检查列H中的值是否为空或“0”我需要删除该值所在的所有行。我怎样才能做到这一点?复制所有单元格与数据从一个表到另一个

这里是我的代码,得到的文件数据,但我不知道,我只塔河数据(和无空单元格)

Windows("Book1").Activate 
Sheets(1).Cells.Select 
Selection.Copy 
+1

OP您好,我建议你使用在“开发”选项卡上的“录制宏”功能,并记录你提到的动作和观察代码 – Larry

+0

我支持Larry的评论,因为它可以让你清楚地看到特定函数和Excel局部变量。然后,你可能会改变任何具体的引用(字符串格式化表名等)与更一般或可变的和迭代他们... –

+0

是的,我是新的vba。我在我的处理程序中使用此代码。 – revolutionkpi

回答

1

试试这个。

Dim n as integer 
Dim n1 as integer 

n = 0 
n1 = 0 

While Sheet("Book1").Range("A1").Offset(n, 0) <> "" 
    If Sheet("Book1").Range("H1").Offset(n, 0) <> null then  
     If Sheet("Book1").Range("H1").Offset(n, 0) <> 0 then 
      Sheet("Book1").Range("A1:Z1").Offset(n, 0).Copy 
      Sheet("All Data").Range("A1:Z1").Offset(n1, 0).Paste 
      n1 = n1 + 1 
     End If 
    End If 
    n = n + 1 
Wend 
0

这将数据复制到Sheet2,将其更改为你的另一片/区域。然后,它会过滤数据,删除可见行(基于标准的数据),然后取出过滤器:

Sheet1.Range("A1").CurrentRegion.Copy Sheet2.Range("A1") 

With Sheet2 
    .Range("A1").CurrentRegion.AutoFilter Field:=8, Criteria1:=0, Operator:=xlOr, Criteria2:="Null" 
    .AutoFilter.Range.Offset(1, 0).Resize(.AutoFilter.Range.Rows.Count - 1) _ 
            .SpecialCells(xlCellTypeVisible).EntireRow.Delete Shift:=xlUp 
    .AutoFilterMode = False 
End With 
相关问题