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

Vba 更改日期的循环,复制&;粘贴结果数据,然后继续这些过程,vba,Vba,我有一本有两张纸的工作簿。表1有一列,列中有一系列日期,这些日期在一系列年份中是同一天(例如,1986年5月1日、1987年5月1日、1988年5月1日、2017年5月1日) 当列顶部的第一个日期更改(例如从1986年5月1日更改为1986年5月2日)时,下面的所有其他年份都将更新到该给定日期,并通过以日期为变量的计算在两个单独的列中生成一系列数据 第二张工作表有两个表格,我需要在日期更改(5/1至5/2至5/3)后从第一张工作表粘贴1986-2017年5月1日至8/28日期间每天产生的数据,依

我有一本有两张纸的工作簿。表1有一列,列中有一系列日期,这些日期在一系列年份中是同一天(例如,1986年5月1日、1987年5月1日、1988年5月1日、2017年5月1日)

当列顶部的第一个日期更改(例如从1986年5月1日更改为1986年5月2日)时,下面的所有其他年份都将更新到该给定日期,并通过以日期为变量的计算在两个单独的列中生成一系列数据

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

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

为了澄清我需要一个循环,它将执行两个过程,在日期再次更改和新数据出现之前,将一天添加到1986年5月1日(直到8月28日),复制每天更改产生的数据,并将其粘贴到第二张工作表中。谢谢

下面是我编写的代码,它成功地设置了流程的第一步,将开始日期设置为1986年5月1日,并将数据复制和粘贴到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

在sheet2上,是否将不同的日期粘贴到不同的列中?不需要在VBA中添加日期。让细胞公式来做。示例:
B2包含日期1986年5月1日
<代码>C1包含0<代码>C2公式=B2+C1<代码>C3公式=日期(年(C2)+1、月(C2)、日(C2))。。。(每行增加一年)。。。复制C2并粘贴到C3直到C40。。。将C2至C40格式设置为日期。。。现在增量C1(vba代码只是增量C1)@jsotola是的,在sheet2上,我正在将sheet1上日期列的第一个单元格中的日期更改后的数据粘贴到sheet2的不同列中(从1986年5月1日到1986年8月28日,每天一列)。我不确定没有VBA我能做我想做的事情,因为我需要重复将sheet1中日期列的第一个单元格的值更改为第二天的过程,将结果复制并粘贴到sheet2上的相应列中,然后移动到第二天。在sheet2上,是否将不同的日期粘贴到不同的列中?不需要在VBA中添加日期。让细胞公式来做。示例:
B2包含日期1986年5月1日
<代码>C1包含0<代码>C2公式=B2+C1<代码>C3公式=日期(年(C2)+1、月(C2)、日(C2))。。。(每行增加一年)。。。复制C2并粘贴到C3直到C40。。。将C2至C40格式设置为日期。。。现在增量C1(vba代码只是增量C1)@jsotola是的,在sheet2上,我正在将sheet1上日期列的第一个单元格中的日期更改后的数据粘贴到sheet2的不同列中(从1986年5月1日到1986年8月28日,每天一列)。我不确定没有VBA我能做我想做的事情,因为我需要重复将sheet1中日期列的第一个单元格的值更改为第二天的过程,将结果复制并粘贴到sheet2的相应列中,然后继续到第二天。