搜索列 - 将整行移动到另一个工作表中

时间:2013-09-14 14:40:44

标签: excel vba excel-vba

我一直试图弄清楚如何让这项工作暂时停止,所以我会试着给你们试试!

我在Sheet1中列出了A-Q和1-5000行的事实。

在E栏中,我将在列表中写下不同的单词。让我们说这个词将是“是”或“否”。

我想要一个宏,它将所有带有“是”字的行复制到Sheet2中。

我找到了一种有效的方法,但问题是这将始终复制到表2中的第2行。所以,让我说我改变Sheet2上的一些信息,一周后我再次使用宏。这将使宏覆盖我已完成的更改。

不确定你们是否明白我想在这里说些什么,但我希望如此!

我想要一个移动行的宏,而不是复制/粘贴它。这将使Sheet1上的行数变得更小,我可以在sheet2上的列表中更改信息。

我希望你能得到我想要的东西。

以下是我现在使用的宏:

   Sub Makro2()

 Dim LSearchRow As Long
 Dim LCopyToRow As Long
 Dim wksInput As Worksheet
 Dim wksOutput As Worksheet

 On Error GoTo Err_Execute

 Set wksOutput = Sheets("Sheet2")

 Set wksInput = ThisWorkbook.Worksheets("Sheet1")

 LCopyToRow = 2
 For LSearchRow = 2 To wksInput.UsedRange.Rows.Count
     If wksInput.Cells(LSearchRow, 2) = "TEST" Then
         wksInput.Rows(LSearchRow).Copy wksOutput.Cells(LCopyToRow, 1)
         LCopyToRow = LCopyToRow + 1
     End If
 Next LSearchRow

 With wksInput
     .Activate
     .Range("A3").Select
 End With

 Exit Sub
 Err_Execute:
     MsgBox "An error occurred. Number: " & Err.Number & " Description: " &  Err.Description
 End sub

1 个答案:

答案 0 :(得分:0)

替换:

LCopyToRow=2

使用:

With wksOutput.UsedRange
    LCopyToRow = .Rows.Count + .Row
End With