【发布时间】:2019-09-06 00:23:29
【问题描述】:
我有一个包含许多工作表的 Excel 工作簿。每张纸都标有月份和年份。即 2019 年 1 月,以此类推,第一张和第二张除外。
第一张纸被隐藏(在那里不做任何事情)。第二张表名为 Sales Chart(我想在其中粘贴数据)。其余的是月和年表。
我需要复制所有当前月份和年份表上的单元格 B5:B10,以及任何未来的表(将遵循月份和年份模式)。复制数据后,它应该水平粘贴(第一张表信息粘贴在 B31 行,第二张在 B32 行,依此类推)。
我正在使用我在网上找到的代码。它只复印一张。它复制公式,而不是公式结果。它垂直复制然后垂直粘贴,而不是垂直复制然后水平粘贴。
Sub MakeSummaryTable()
Dim ws As Worksheet
Application.ScreenUpdating = True
Sheets(1).Activate
For Each ws In Worksheets
If ws.Name <> "Sales Chart" Then
ws.Range("B5:B10").Copy
ActiveSheet.Paste Range("B31").End(xlUp).Offset(1, 0)
End If
Next ws
Application.ScreenUpdating = True
End Sub
我希望代码从所有当前工作表中复制单元格 B5:B10 上的结果并将其粘贴到工作表“销售图表”B31-G31(水平)并向下。
【问题讨论】:
-
数据粘贴到销售图表表中的顺序是否重要?宏是否应该每次从第 31 行开始复制到销售图表单元格的顶部?如果我们将 10 行数据粘贴到销售图表中,但宏上次运行时已经有 20 行数据,会发生什么情况?
-
我希望将其水平粘贴以用于预测图表。宏不应粘贴任何内容,除非它正在更新与其工作表对应的行。如果再次运行宏,它应该只更新新数据。我想它可以更新任何旧数据(应该保持不变,因为随着时间的推移,过去几个月的所有以前的数据都不应该改变。它是为了反映每月的业绩/销售额而制作的销售表)。