VBA:搜索行中的多个可能值,然后复制范围

VBA:搜索行中的多个可能值,然后复制范围,vba,excel,copy,find,Vba,Excel,Copy,Find,我是VBA的新手,非常感谢您的帮助。我有一个巨大的动态数据库,每个季度更新公司及其季度评级。该数据库包含约70列评级和其他信息以及3000多行公司信息。由于我对源文件没有任何影响,列顺序和行可能会发生更改。我的目标不仅是根据标题公司复制和粘贴公司名称,还包括所有过去的评级和新的评级,它们将始终位于最新评级和其他我不需要的信息列之间的新列中 请参见我的随机数示例: 在那里你可以看到 公司名称以蓝色标题命名 过去的绿色评级和新评级在其旁边的位置,以及 其他不需要的橙色信息 为了不必每季度手动调整宏

我是VBA的新手,非常感谢您的帮助。我有一个巨大的动态数据库,每个季度更新公司及其季度评级。该数据库包含约70列评级和其他信息以及3000多行公司信息。由于我对源文件没有任何影响,列顺序和行可能会发生更改。我的目标不仅是根据标题公司复制和粘贴公司名称,还包括所有过去的评级和新的评级,它们将始终位于最新评级和其他我不需要的信息列之间的新列中

请参见我的随机数示例:

在那里你可以看到

公司名称以蓝色标题命名 过去的绿色评级和新评级在其旁边的位置,以及 其他不需要的橙色信息 为了不必每季度手动调整宏,我希望有一个宏可以搜索任何标题,格式为Q1-07,表示季度和年度Q1、Q2、Q3或Q4,然后将这些评级复制到另一个工作表,包括公司名称

我知道如何搜索具有特定名称的标题,如公司标题,但我不知道如何集成一个查找函数,该函数考虑了4个季度的多个可能值

到目前为止,我的手动解决方案是这样的,但正如我所说的,我更喜欢自动识别新季度的更舒适的解决方案:

Worksheets("UpdatedQuarterlyInput").Activate
Range("A1").Select
Worksheets("UpdatedQuarterlyInput").rows("1:1").Find(What:="Q1 - 07", _ 
After:=ActiveCell, LookIn:=xlFormulas, LookAt:=xlWhole, SearchOrder:=xlByRows, _
SearchDirection:=xlNext, MatchCase:=False, SearchFormat:=False).Activate
Set Rng = ActiveCell.Range(Cells(2, 1), Cells(LastRow_UpdatedQuarterlyInput, 1))
Rng.Select
Selection.Copy
Worksheets("Output").Activate
Worksheets("Output").Range("A2").PasteSpecial Paste:=xlPasteValues
非常感谢


Felix

我不确定我是否完全理解你的问题-希望我没有在这个想法上走错方向

一个快速而肮脏的解决方案是使用数据选项卡上的数据验证在目标工作表的某处创建一个下拉菜单,该选项卡由源文档数据->数据验证->允许字段中的选择列表中的所有季度标题填充,然后为公式字段选择源文档季度标题。如果公式在最后一列的列中一列,那么在中间添加一列时,它将自动展开。
然后添加一个按钮,该按钮将按照上面所述执行Sub,但使用下拉菜单的内容填充Find方法的What:参数。现在,您所要做的就是从下拉菜单中选择所需的季度。如果您正确创建了数据验证,则该季度已经存在,然后单击按钮。完成了

有一系列需求但没有任何代码问题的问题将很快在这里解决。请尝试一些代码,并询问您是否卡住。嗨,贾加迪什,谢谢您的建议。对不起,我是新来的。。最好的是,Felixy您的描述和示例令人困惑。该示例是显示从中获取信息的文档的格式,还是将其复制到的文档?描述听起来像是目的地,但VBA代码看起来像是源代码。对不起,Rick,示例应该是源代码。带有蓝色和绿色标题的列应复制到另一张图纸中。