我是VBA的新手,非常感谢你的帮助。我有一个庞大的动态数据库(公司及其季度评级),每个季度都有更新。该数据库包含大约70列(评级和其他信息)和超过3000行(公司)。列顺序和行可能会发生变化,因为我对源文件没有任何影响。我的目标是不仅复制和粘贴公司的名称(根据标题"公司"),而且还包括所有过去的评级 AND 新评级,这将始终是在最新评级与其他专栏之间的新栏目中(包含我不需要的信息)。
请参阅我的示例(随机数字): https://www.dropbox.com/s/98n8ty5mrt7etwd/Screenshot2.PNG
你可以看到
为了不必每季度手动调整宏我希望有一个宏来搜索任何标题(格式为例如" Q1-07和#34;),表示季度和年份(& #34; Q1"," Q2"," Q3"或" Q4")然后将这些评级复制到另一个工作表(包括公司名称)
我知道如何搜索具有特定名称的标题(例如"公司"标题),但我不知道如何集成可能需要多个的Find函数价值(四分之三)考虑在内。
到目前为止,我的手动解决方案就是这样,但正如我所说,我更喜欢一种更舒适的解决方案,可以自动识别新的季度:
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
非常感谢!!
菲利克斯
答案 0 :(得分:0)
我不确定我是否完全理解你的问题 - 希望我对这个想法并没有走错路。
快速而肮脏的解决方案是使用“数据”选项卡上的“数据验证”在目标工作表的某处创建一个下拉菜单,该选项卡由源文档中的所有季度标题填充(Data
- > {{ 1}} - >从Data Validation
字段中选择List
,然后为Allow
字段选择源文档Quarter标头。让公式一列超过最后一个Quarter列,这样当你在中间添加一列时它会自动展开。
然后添加一个按钮,按照上面的说明执行Formula
,但使用下拉菜单中的内容填充Sub
方法的What:
参数。现在,您只需从下拉菜单中选择所需的季度(如果您正确创建了Find
,它就已存在)并单击您的按钮。完成。