我有一些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
答案 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
你得到食谱,你有食材,现在尝试自己做饭。
祝你好运! :)