基于对标签网格的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 :
- select你想要search的列(
K
和Q
如果我理解的很好) - 用样本标签执行search
- 复制你find的那一行
- 粘贴到其他工作表
然后你将有第一个代码样本开始。
在这里看一些关于如何清理代码的提示