EXCEL VBA跳过空白行

时间:2013-01-01 18:49:14

标签: excel vba rows cells

Private Sub CommandButton1_Click()
Dim rng As Range
Dim cell As Variant

Set rng = Range("C8:C12")

For Each cell In rng
    Sheets("Sheet1").Range("A1:H7").Copy Destination:=Sheets("Quantity").Range("XFD4").End(xlToLeft).Offset(-3, 3)
    Sheets("Quantity").Range("XFD1").End(xlToLeft).Offset(0, 1).Value = cell.Offset(1, -1).End(xlUp).Value
    Sheets("Quantity").Range("XFD2").End(xlToLeft).Offset(0, 1).Value = cell.Value
    Sheets("Quantity").Range("XFD3").End(xlToLeft).Offset(0, 1).Value = cell.Offset(0, 1).Value  
Next
End Sub

我想在这里完成的是skip blank cell/row。因为它会将空数据复制到工作表中。有没有任何方法,例如这个For loop不是isEmpty或isBlank?提前谢谢。

1 个答案:

答案 0 :(得分:1)

您应该能够检查IsEmpty(cell)以查看单元格是否为空。

例如(未经测试):

For Each cell In rng
    If Not IsEmpty(cell) Then
        Sheets("Sheet1").Range("A1:H7").Copy Destination:=Sheets("Quantity").Range("XFD4").End(xlToLeft).Offset(-3, 3)
        Sheets("Quantity").Range("XFD1").End(xlToLeft).Offset(0, 1).Value = cell.Offset(1, -1).End(xlUp).Value
        Sheets("Quantity").Range("XFD2").End(xlToLeft).Offset(0, 1).Value = cell.Value
        Sheets("Quantity").Range("XFD3").End(xlToLeft).Offset(0, 1).Value = cell.Offset(0, 1).Value 
    End If 
Next