EXCEL VBA 跳过空白行

声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow 原文地址: http://stackoverflow.com/questions/14113217/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me): StackOverFlow

提示:将鼠标放在中文语句上可以显示对应的英文。显示中英文
时间:2020-09-11 19:02:07  来源:igfitidea点击:

EXCEL VBA Skip blank row

excelvbarowscells

提问by 4 Leave Cover

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

What I want to accomplish here is to skip blank cell/row. Because it will copy empty data to the sheet. Is there any method e.g. Not isEmpty or isBlank for this For loop? Thanks in advance.

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

回答by lc.

You should be able to check IsEmpty(cell)to see if a cell is empty.

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

For example (untested):

例如(未经测试):

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