如果单元格符合某些条件,则如何遍历列,然后将整行粘贴到另一个工作表中

时间:2017-02-16 11:50:34

标签: excel vba excel-vba

我有以下代码选择我想要的值但是我想知道如何根据找到该值然后粘贴到特定点的另一个工作表中来复制该行。工作表2 E5。

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<textarea class="textfield" id="form1" name="form1">My text here</textarea>
<div class="taglist">
  <label><input type="checkbox" value="Value 1">Value 1</label>
  <label><input type="checkbox" value="Value 2">Value 2</label>
  <label><input type="checkbox" value="Value 3">Value 3</label>
  <label><input type="checkbox" value="Value 4">Value 4</label>
  <label><input type="checkbox" value="Value 5">Value 5</label>
</div>

1 个答案:

答案 0 :(得分:1)

例如,您无法将行粘贴到单元格E5中,因为复制的行将比您允许粘贴的行更长

For Each cell In Sheets("EMAIL DATA").Range("E:E")  
    If cell.Value = "Rob" Then
        Worksheets(2).Range("E5").EntireRow.Value = cell.EntireRow.Value
    End If
Next

但是这将继续在同一排,更好的像

i = 1
For Each cell In Sheets("EMAIL DATA").Range("E:E")  
    If cell.Value = "Rob" Then
        Worksheets(2).Cells(i, 1).EntireRow.Value = cell.EntireRow.Value
        i = i + 1
    End If
Next

同时考虑获取E列中的最后一个单元格,这样您就不会浪费时间迭代所有100万行,例如Sheets(1).Range("E" & Cells(Rows.Count, 5).End(xlUp).Row)

修改

根据你的评论

i = 1
For Each cell In Sheets("EMAIL DATA").Range("E" & Cells(Rows.Count, 5).End(xlUp).Row)
    If cell.Value = "Rob" Then
        Worksheets(2).Cells(i, 1).Resize(, 5).Value = Cells(cell.Row, 1).Resize(, 5).Value
        i = i + 1
    End If
Next