【发布时间】:2017-04-20 08:21:19
【问题描述】:
在工作表 INPUT 中,输入周计划的数据行。每天多行是可能的。 A 列包含日程表原一周的日期。当在 INPUT 表中设置完整的计划(假设 15 行 x 10 列数据)时,可以运行一个宏,将计划复制到 OUTPUT 表并创建一整年。因此,我正在编写 VBA 代码以复制数据块并将其粘贴到前一周的下方,并将日期更新 7 天。
我在使用 DateAdd 函数时遇到了问题。
有没有人知道一个好的解决方案?
Dim i As Integer
Dim rowCount As Long
Dim columnCount As Long
Sheets("OUTPUT").Select
Sheets("OUTPUT").Cells.Clear
Sheets("INPUT").Select
rowCount = Sheets("INPUT").Range("A6", Sheets("INPUT").Range("A6").End(xlDown)).Rows.Count - 1
columnCount = Sheets("INPUT").Range("A5", Sheets("INPUT").Range("A5").End(xlToRight)).Columns.Count - 1
Range("A5").Select
Range(Selection, Selection.End(xlToRight)).Select
Range(Selection, Selection.End(xlDown)).Select
Selection.Copy
Sheets("OUTPUT").Select
Range("A1").Select
ActiveSheet.Paste
For i = 1 To 51
Range("A" & Rows.Count).End(xlUp).Select
Range(Selection, Selection.Offset(-rowCount, columnCount)).Copy
Range("A" & Rows.Count).End(xlUp).Select
ActiveCell.Offset(1, 0).PasteSpecial
Range("A" & Rows.Count).End(xlUp).Select
Range(Selection, Selection.Offset(-rowCount, 0)).Value = DateAdd("d", 7, Range(Selection, Selection.Offset(-rowCount, 0)).Value)
接下来我
【问题讨论】:
-
避免使用 Select...stackoverflow.com/questions/10714251/…
-
我倾向于将其关闭为重复,除非您可以显示一些额外的代码来演示此问题与其他类似 Q 的不同之处,例如上面链接的一个(除了您的
Selection,这真的非常与手头的问题无关)。 -
特别是,您可能应该在
DateAdd函数中显示您的失败尝试。 -
@DavidZemens 这是我在这个网站的第一天,我不是一个有经验的程序员。我已经搜索并没有找到解决问题的方法。我不认为它是您提供的链接的副本,或者我的经验不足以将其转化为我的问题。你能提供帮助吗?