Excel - 如果单元格包含特定文本,则将整行移动到下一个工作表中

时间:2013-10-04 10:21:51

标签: excel excel-vba vbscript excel-formula vba

我正在尝试设置一个公式,其中工作表1是本月的安装作业列表,有几列显示客户详细信息,最后一列显示了下拉列表中的作业进度。

如果作业已“完成”,那么我希望将整行复制到下一个工作表(工作表2)中,如果作业正在进行中,则不会进入下一个工作表。

我还有几个失败的原因可以将这些数据转移到(工作表3)以显示来自表1的已归档作业列表

我们将非常感激地收到任何指导。

1 个答案:

答案 0 :(得分:0)

Sub copyJobs()
  Dim r1
  Dim r2
  Dim r3
  r1 = 1
  r2 = 1
  r3 = 1
  While Sheets("Sheet1").Range("A" & LTrim(Str(r1))) <> ""
    If Sheets("Sheet1").Range("B" & LTrim(Str(r1))) = "completed" Then
      Sheets("Sheet1").Range(LTrim(Str(r1)) & ":" & LTrim(Str(r1))).Copy
      Sheets("Sheet2").Range("A" & LTrim(Str(r2))).PasteSpecial xlPasteAll
      r2 = r2 + 1
    End If
    If Sheets("Sheet1").Range("B" & LTrim(Str(r1))) = "failed" Then
      Sheets("Sheet1").Range(LTrim(Str(r1)) & ":" & LTrim(Str(r1))).Copy
      Sheets("Sheet3").Range("A" & LTrim(Str(r3))).PasteSpecial xlPasteAll
      r3 = r3 + 1
    End If
    r1 = r1 + 1
  Wend
End Sub

它将从sheet1上的第1行开始,直到A列中的值为空。在我的示例中,状态位于B列,您当然可以更改它。