Vba 提取到日期之间的数据并粘贴到新图纸

Vba 提取到日期之间的数据并粘贴到新图纸,vba,excel,Vba,Excel,我有一些excel文件,每个文件包含过去30年中一年中每一天(日期(A1)、平均值(B1)、CV(C1))的3行数据。现在,我想将它们除以收集它们的年份(例如,过去20年、过去10年、去年,甚至过去6个月)。因此,我使用几行代码将开始和结束日期放在两个单元格中,并过滤掉这两个日期之间的数据(单元格) Dim lngStart As Long, lngEnd As Long lngStart = Range("E1").Value 'assume this is the start date ln

我有一些excel文件,每个文件包含过去30年中一年中每一天(日期(A1)、平均值(B1)、CV(C1))的3行数据。现在,我想将它们除以收集它们的年份(例如,过去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
但是,我有好几张这样的工作表,我必须在每一张工作表中为过去30年、20年、10年、5年、3年、1年、6个月、3个月和1个月分别制作一张工作表。 我想知道是否有机会使用宏来提取所有这些时间段(例如,根据数据库中的最后一个日期,最后一个10年),并立即将它们复制到标有其特定时间段(例如“10年”)的新工作表中!? 因此,结果将是9个新的标签表,每个表有三列(日期(A1)、平均值(B1)、CV(C1))! 抱歉,说来话长:)
非常感谢你们的帮助,并期待收到你们的来信

最好的, Neos116

莫菲斯:尼欧,我想解放你的思想。但我只能带你去开门。你是唯一一个必须穿过它的人

让我们看看这里有什么。。。1勺“动态添加新工作表”:

一杯“寻找边缘”:

还有一点“复制并粘贴您的范围”:

你有了食谱,你有了配料,现在试着自己做点东西


祝你好运!:)

非常感谢!我喜欢您的解决方案:)如果您遇到困难,请随时向我询问任何细节:)
`Range("A1:C1").Select
Range(Selection, Selection.End(xlDown)).Select
Selection.Copy
Sheets.Add After:=Sheets(Sheets.Count)
ActiveSheet.Paste´
    ActiveWorkbook.Sheets.Add Before:=Worksheets(Sheets.Count)
    ActiveSheet.Name = "blabla"
i=2 'Assuming your first row contains column names
Do While CDate(Cells(i, "A")) >= DateAdd("m", Now, -1) 'to get last month dates only
    i = i + 1
loop
'At this point i holds the row number of the very first record earlier then last 1 month
Range(Cells(2, "A"), Cells(i-1, "C")).Copy
Sheets("1m").Select
Cells(2, "A").PasteSpecial xlPasteAll