2017-04-16 45 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 
相关问题