复制当前行

时间:2017-07-13 06:39:34

标签: excel vba excel-vba

所以我有一个包含16列的工作表。我想找出具有字体颜色的单元格是vbRed。让我们说Range(" A5")是找到的单元格然后我想将整行复制并粘贴到当前工作表的下一行。

当我写Macro时,我发现我的程序将继续循环我复制和粘贴的行。而且我也不确定我是否可以使用循环,复制和粘贴以及find方法。如果有人能帮忙,我会非常感激。

使用我当前的代码:

Sub CopyRow()

Dim Row As Long
Row = ActiveSheet.Range("A1", ActiveSheet.Range("A1").End(xlDown)).Rows.Count
Sheets("Sheet1").Activate
Dim rng As Range
Set rng = Range("A1:A" & Row)

For Each cel In rng
If cel.Font.Color = vbRed Then
cel.Rows.EntireRow.Insert Shift:=xlDown
cel.EntireRow.Copy cel.Offset(-1).EntireRow
cel.Offset(1, 0).Select
End If
Next cel

End Sub

有无限循环......

2 个答案:

答案 0 :(得分:0)

选择列中第一个空单元格:

Range("YOUR COLUMN" & Rows.Count).End(xlUp).Offset(1).Select

如果您的列A始终填充,您可以将宏基于它,然后粘贴您复制的整行。

答案 1 :(得分:0)

Dim SrchRngA as range

Set SrchRngA = Range("a16:a500")


For Each cel In SrchRngA
    If InStr(1, cel.Value, "AB") > 0 Then 'search for "AB"
        cel.offset(1,0).value = cel.value 'replace next row with current cell value
    end if
next cel