更改日期的循环,复制&粘贴结果数据,然后继续这些过程

时间:2017-07-17 17:45:03

标签: vba

我有一张2张工作簿。表1中的列具有一系列日期,这些日期是一系列年份中的同一天(例如,5/1/1986,5/1/1987,5/1/1988,... 5/1/2017) 。

当列顶部的第一个日期发生变化时(例如从5/1/1986变为5/2/1986),下面的所有其他年份将更新到该给定日期,并且一系列数据将会通过计算生成两个单独的列,该计算取决于作为变量的日期。

第二个工作表有两个表格,我需要在日期变更后从第一个工作表中粘贴1986年至2017年5月1日到8月28日每天的数据(5/1到5/2到5/3)等等。棘手的部分是每次更改日期之前需要进行复制和粘贴,以便记录所有后续数据。

我知道我可能需要使用DateAdd函数将一天的添加循环到列顶部的开始日期,并且我知道我可能需要使用Do Until函数来使输入最后日期8/28时序列停止。我一直在调整代码,但我无法正确格式化。

为了澄清我需要一个循环来完成两个过程,将一天添加到5/1/1986(直到8/28)并复制每天变化产生的数据并将其粘贴到第二个工作表中,然后再日期再次更改,并显示新数据。感谢。

下面是我编写的代码,它成功设置了该过程的第一步,将开始日期设置为5/1/1986,并将数据复制并粘贴到sheet2中的表中。

'StartDate is input as 5/1/1986 and plugged into first cell of data range, DK7'
Dim StartDate As String
StartDate = Range("DO50").Value
    Range("DK7").Value = StartDate

'EndDate is input as 8/28/1986 and used as reference to end sequence of Copy & Pasting'
Dim EndDate As String
EndDate = Range("DO51").Value

'Corn Z-Score results for StartDate are copied and pasted into Sheet2'
Range("DS7:DS38").Copy
Worksheets(2).Range("D4:D36").PasteSpecial Paste:=xlPasteValues
Application.CutCopyMode = False

'Soy Z-Score results for StartDate are copied and pasted into Sheet2'
Range("DT7:DT38").Copy
Worksheets(2).Range("D41:D73").PasteSpecial Paste:=xlPasteValues
Application.CutCopyMode = False

0 个答案:

没有答案