VBA - 使用" i"循环遍历单元格。

时间:2015-07-07 18:29:56

标签: arrays excel-vba loops vba excel

我试图遍历列中单元格的范围,然后检查单元格是否为空,如果是,我想将相应的行复制到新工作表中。这就是我到目前为止所做的:

{
  "name": "foobar",
  "app_id": "com.foo.bar",
  "gulpStartupTasks": [
    "styles",
    "source",
    "watch"
  ],
  "watchPatterns": [
    "www/**/*",
    "!www/lib/**/*"
  ],
  "sourceModules": {
    "ionic": "git://github.com/driftyco/ionic.git",
    "ng-cordova": "git://github.com/driftyco/ng-cordova.git"
  }
}

此代码的问题在于,只要有一个空单元格,相应的行就会被复制并粘贴到新工作表中,即使相应的单元格不为空,也会将以下行复制并粘贴到新工作表中。我希望代码将对应于列Q中的空单元格值的任何行复制并粘贴到单个新工作表中

2 个答案:

答案 0 :(得分:0)

这条线存在问题。尝试纠正它。

Worksheets.Add after:= Sheets(Sheets.Count)

答案 1 :(得分:0)

我相信您希望将所有带有空白列Q单元格的行复制到单个新工作表中。

Sub copy_blank_to_new()
    Dim i As Long, ws As Worksheet

    Set ws = Worksheets.Add(after:=Sheets(Sheets.Count))

    With Sheets("GES1")
        .Cells(1, 1).Resize(1, 17).Copy Destination:=ws.Cells(1, 1)
        For i = 2 To .Cells(Rows.Count, 1).End(xlUp).Row
            If Not CBool(Len(Cells(i, 17).Value)) Then _
                .Cells(i, 1).Resize(1, 17).Copy _
                  Destination:=ws.Cells(Rows.Count, 1).End(xlUp).Offset(1, 0)
        Next i
    End With

    Set ws = Nothing

End Sub

首先复制第一行。我猜测这是列标题标签信息。然后,它将每一行用空白(实际为零长度值)复制到同一新工作表中的后续行中。

如果列Q可能为空,则其他列可能包含空白的可能性很小。我使用了A列来确定要检查的数据范围。如果这还不够,还有其他方法,但对你的数据实际看起来有什么想法会有所帮助。