基于对标签网格的search将行复制到另一个工作表

我有一个Excel的问题,我希望有人能帮助我。

我有一个表格,其中列K和Q是一些标签。 我想要做的是有一个函数或一个macros或东西,将允许我查看所有这些标签,并将任何包含特定单词的行复制到另一个工作表。

例如

IJKLMNO etc. 1 blah blah funding blah blah blah blah 2 funding blah blah blah blah blah blah 3 blah blah blah blah blah blah blah 4 blah blah blah blah blah blah blah 5 blah blah blah blah blah funding blah 6 blah blah funding blah blah blah blah 

在A到H列还有其他信息,我也需要复制,但不希望包含在search中。 所以在这种情况下,我想能够search标签“资金”,因此复制第1,2,5和6行到不同的工作表。

这可能吗?

这是代码。 我从这个论坛(从我的代码基于这个)的tompols信贷: http ://en.kioskea.net/forum/affich-242360-copy-row-if-a-range-of-column-matches-a -值

更新 :代码被重写为更加有效率的Jean-FrançoisCorbett实现的一些奇妙点(谢谢!)。 我还在最后添加了一个消息框,报告复制了多less行。

我定制了代码来完成你所需要的工作。 当你运行这个macros时(确保你不在表2中)会发生什么情况。 input你想要过滤的单词(在你的案例中),它将通过K:Q查看包含它的单元格。 当它find匹配到表单2时,它将复制整个列。

 Sub customcopy() Application.ScreenUpdating = False Dim lastLine As Long Dim findWhat As String Dim toCopy As Boolean Dim cell As Range Dim i As Long Dim j As Long findWhat = CStr(InputBox("Enter the word to search for")) lastLine = ActiveSheet.UsedRange.Rows.Count j = 1 For i = 1 To lastLine For Each cell In Range("K1:Q1").Offset(i - 1, 0) If InStr(cell.Text, findWhat) <> 0 Then toCopy = True End If Next If toCopy = True Then Rows(i).Copy Destination:=Sheets(2).Rows(j) j = j + 1 End If toCopy = False Next i = MsgBox(((j - 1) & " row(s) were copied!"), vbOKOnly, "Result") Application.ScreenUpdating = True End Sub 

接受答案(我注意到你是新来的):如果这对你有效,请点击左上angular的箭头接受这个答案。 谢谢!

您可以尝试使用以下步骤录制macros :

  1. select你想要search的列( KQ如果我理解的很好)
  2. 用样本标签执行search
  3. 复制你find的那一行
  4. 粘贴到其他工作表

然后你将有第一个代码样本开始。

在这里看一些关于如何清理代码的提示