2017-04-16 49 views
1

我有一個名爲「在此處粘貼可用性數據」的工作表,其中列A中有一個數字,C和D列中的日期和時間以及列E.列B在其中有單詞「OK」或「ERROR」。我想要做的是將列B中只包含單詞「ERROR」的所有行復制到名爲「Availability」的新表中。excel將具有特定單詞的行復制到同一順序的另一個工作表中

數據從第3行開始,可能有至少700行數據。

我需要一個宏,當數據每月粘貼到「在此處粘貼可用數據」時,它會自動將數據複製到表單「可用性」。

我試圖用IF函數做它,但它不想工作。

Sub Test() 
    For Each Cell In Sheets(1).Range("B:B") 
    If Cell.Value = "ERROR" Then 
     matchRow = Cell.Row 
     Rows(matchRow & ":" & matchRow).Select 
     Selection.Copy 
     Sheets("Availability").Select 
     ActiveSheet.Rows(matchRow).Select 
     ActiveSheet.Paste 
     Sheets("Paste Availability Data Here").Select 
    End If 
    Next 
End Sub 

圖片連接工作表的

非常感謝

+0

我實際上正在做類似的事情,你想用某種按鈕或自動過程來完成這個嗎? – MonkeyWithMachine

+0

我也需要它是一個自動過程 –

+0

我已經挺過上面的作品,但它在新的工作表上留下空白。我希望所有填充的行都是連續的,沒有空白行,其中OK的行是 –

回答

0

這做工作,但您需要更改指數名稱,併爲您的特定問題。發佈另一個自動化問題(但它已被回答here)。

Dim wsh1 As Worksheet 
Dim wsh2 As Worksheet 
Dim i As Integer 
Dim j As Integer 

Sub Conditional_Copy() 

Set wsh1 = Worksheets("Sheet1") 
Set wsh2 = Worksheets("Sheet2") 

i = 1 
j = 1 

Do While wsh1.Cells(i, 2) <> "" 

    If wsh1.Cells(i, 2) = "ERROR" Then 

     wsh1.Rows(i).Copy wsh2.Rows(j) 

     j = j + 1 

    End If 

    i = i + 1 

Loop 

End Sub 
相關問題