从非连续行中提取数据并将其添加到连续行中的其他表单中

我试图从一个范围(A1:A:2000)中提取任何引用关键字的数据,而不pipe范围在哪里,并将结果转换为从A1向下连续行的新工作表。
一个很好的例子就是电影剧本。

如果电影中的所有行都在表格的A栏中:“完整的电影脚本”,我只想把单个人的行移动到新的表格中:“迈克的脚本”。 原始的“完整的电影脚本”工作表可能如下所示:

A1 Mike: Blah Blah Blah A2 Paul: Blah Blah Blah Blah Blah Blah A3 Jerry: Blah Blah Blah Blah A4 Mike: Blah A5 Jerry: Blah Blah Blah A6 Mike: ... 

我想用VBA做的事情就是通过使用关键字“Mike”将Mike的行移到新表中:

迈克的脚本

 A1 Mike: Blah Blah Blah A2 Mike: Blah A3 Mike: ... 

我知道我可以在第二页中使用IF语句并对数据进行sorting但理想情况下,我希望能够做到这一点,而不必过滤和sorting来获得输出。 我正在探索在Visual Basic中的选项,但有人可能知道如何做到这一点。

把这个放入一个未使用的单元格中,

 =INDEX(A:A, AGGREGATE(15, 6, ROW(A$1:A$2000)/(LEFT(A$1:A$2000, FIND(":", A$1:A$2000)-1)="mike"), ROW(1:1))) 

填写,直到你得到#NUM! 错误。 当你有它的工作,移动到目标工作表并更正单元格区域以包括原始工作表。 或者,使用IFERROR包装来显示一个零长度的string,而不是工作表错误代码。

在这里输入图像说明