在日期之间提取数据并粘贴到新工作表

时间:2015-10-02 17:25:36

标签: excel vba excel-vba

我有一些excel文件,每个文件包含过去30年中每一天(日期(A1),AVG(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

`

并添加更多行以将这些数据复制到新工作表中。

`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年)并将它们复制到由其自己的特定时间段标记的新表格(例如“10y”)at一旦!? 因此,结果将是9个新的标记表,每个表有三列(日期(A1),AVG(B1),CV(C1))! 抱歉长篇故事:)
 非常感谢您的帮助,期待收到您们的回复!

最佳, Neos116

1 个答案:

答案 0 :(得分:0)

  

Morpheus 我正试图释放你的思绪,Neo。但我只能告诉你门。你是那个必须走过它的人。

让我们看看我们在这里得到了什么... 1勺“即时添加新表”:

#!/bin/bash
input="/root/file1"
input2="/root/file2"
paste -d, file{1,2}.txt | while IFS=, read x y; 
do   nmap -sV --version-light --script ssl-poodle -p $y $x
if something(detects its vulnerable)
echo "true">>file3.txt
else (not vulnerable)
echo "false">>fie3.txt
done

一杯“寻找边缘”:

    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

你得到食谱,你有食材,现在尝试自己做饭。

祝你好运! :)