这是问题Find Results in excel copy the rows to another sheet的分支。这有完全匹配的解决方案,但不是“包含”匹配。此前的条目还有一个分支,但具体到日期格式。
我将复制原始条目的内容并附加额外要求:
“我需要一些帮助将数据从一个Excel工作表复制到另一个Excel工作表。例如:
____A_____B____C 1 xaaax xbbbx xdddx 2 xbbbx xcccx xeeex 3 xcccx xfffx xrrrx 4 xcccx xfffx xtttx 5 xdddx xeeex xgggx 6 xaaax xdddx xeeex 7 xbbbx xfffx xhhhx 8 xeeex xeeex xeeex
其中“x”的每个实例都可以是任何字符串。
因此,对于上述记录,如果我执行'CTRL + F'并搜索以查找所有'eee',结果将显示C2,B5,C6,A8,B8,C8中的6个实例
现在我想将整个行2,5,6和8复制到另一个工作表。
如果整个单元格内容只是搜索到的子字符串(即:“eee”),那么答案就是:
(Peter L.提供) “要实现您的需求,请执行以下操作(假设您的数据位于A:C行,从第2行开始,即有标题):
键入D2(附加列):= IF(OR(A2:C2 =“eee”),1,0),但按CTRL + SHIFT + ENTER而不是通常的ENTER - 这将定义一个ARRAY公式并将导致围绕它的{}括号(但不要手动输入!) 根据需要自动填充配方。
将过滤器添加到整个A:D范围 将过滤器应用于D列的值为1 复制整个过滤的列A:C并粘贴到任何位置 - 仅复制过滤的行。“
但是,如果单元格的全部内容等于eee
,则此解决方案似乎才有效。如果我想搜索子字符串,例如在eee
中搜索alkjalkjeeeljkjl
,我相信我还需要其他内容。
我曾尝试使用=ISNUMBER(SEARCH(
,但我已经达到了我的能力极限,似乎搜索不会在第二行的A2:C2范围内。
答案 0 :(得分:0)
显然,必要时更改工作表。
Sub SO()
Dim ws1 As Worksheet
Dim ws2 As Worksheet
Dim lastRow1 As Long
Dim lastRow2 As Long
Dim f As Long
Dim search As String
search = "eee"
Set ws1 = ThisWorkbook.WorkSheets("Sheet5")
Set ws2 = ThisWorkbook.WorkSheets("Sheet6")
lastRow1 = ws1.Cells(ws1.Rows.Count, "A").End(xlUp).Row
With ws1
For i = 1 To lastRow1
f = InStr(1, .Cells(i, 1), search)
If f > 0 Then
lastRow2 = ws2.Cells(ws2.Rows.Count, "A").End(xlUp).Row
ws2.Rows(lastRow2 + 1).Value = ws1.Rows(i).Value
End If
Next
End With
End Sub
答案 1 :(得分:0)
请尝试:
=IFERROR(FIND(D$1,A1),IFERROR(FIND(D$1,B1),FIND(D$1,C1)))
(区分大小写)被复制下来,其中D1包含您的搜索词。
应该是一种识别要复制的行的方法(与过滤器一起排除错误值)。