【发布时间】:2015-10-02 17:25:36
【问题描述】:
我有一些 excel 文件,每个文件都包含过去 30 年一年中每一天的 3 行数据(日期 (A1)、AVG (B1)、CV (C1))。现在,我想将它们除以收集它们的年份(例如,过去 20 年、过去 10 年、去年,甚至过去 6 个月)。所以,我用几行将开始和结束日期放在两个单元格中,并过滤掉这两个日期之间的数据(单元格)。
Dim lngStart As Long, lngEnd As Long
lngStart = Range("E1").Value 'assume this is the start date
lngEnd = Range("E2").Value 'assume this is the end date
Range("A2:A4000").AutoFilter field:=1, _
Criteria1:=">=" & lngStart, _
Operator:=xlAnd, _
Criteria2:="<=" & lngEnd
`
再添加几行以将这些数据复制到新工作表中。
`Range("A1:C1").Select
Range(Selection, Selection.End(xlDown)).Select
Selection.Copy
Sheets.Add After:=Sheets(Sheets.Count)
ActiveSheet.Paste´
但是,我有几个这样的工作表,我必须在每个工作表中为过去 30 年、20 年、10 年、5 年、3 年、1 年、6 个月、3 个月和 1 个月制作单独的工作表。
我想知道是否有机会有一个宏来提取所有这些时间段(例如,根据数据库中的最后一个日期,最后 10 年)并将它们复制到由其自己的特定时间段(例如“10 年”)标记的新工作表中一次!?
因此,结果将是 9 个新标记的工作表,每个工作表有三列(日期 (A1)、AVG (B1)、CV (C1))!
对不起,长篇大论:)
非常感谢您的帮助,期待您的回音!
最好, Neos116
【问题讨论】: