在列中找到单元格值时,复制行和粘贴

时间:2016-09-09 02:45:28

标签: excel vba excel-vba if-statement copy-paste

我对VBA的了解非常有限,所以希望我能解释一下我的目标!我试图复制一行,如果它有任何>第J栏中的0。

然后我想将这个复制的行插入到复制单元格的新行中。

我希望循环遍历整个工作表,以便重复J中值的每一行,工作表中的数据大小不一,B列中始终会有一个值,直到数据结束...

这是我失败的尝试......

 Sub Copy_Cells()
    For Each Objcell In ActiveSheet.Columns(10).Cells
    Do
     If Objcell.Value > 0 Then
         Objcell.EntireRow.Select
        Selection.Copy
        Selection.Insert Shift:=xlDown
         Exit Sub
         Loop Until IsEmpty(ActiveSheet.Columns(2).Cells)
    End If
Next Objcell

End Sub

2 个答案:

答案 0 :(得分:1)

我认为这就是你要做的事。

Sub Copy_Cells()
    botRow = 100
    For i = botRow To 1 Step -1
      If Cells(i, 10).Value > 0 Then
        Rows(i).EntireRow.Copy
        Rows(i + 1).Insert Shift:=xlDown
      End If
   Next i
End Sub

您需要设置底行,或者您可以实现已用行等的计数。

答案 1 :(得分:0)

Sub Copy_Cells()
   Dim totalRow as Integer
   totalRow = Activesheet.Cells(1,2).End(xlDown).Row 'Count total row from B column
   For Each Objcell In Activesheet.Range("J1:J" & totalRow)
       If Objcell.Value > 0 Then
            Objcell.EntireRow.Select
            Selection.Copy
            Selection.Insert Shift:=xlDown
       End If
   Next Objcell
End Sub