【发布时间】:2016-05-16 13:31:26
【问题描述】:
我已经使用了这个论坛中指出的各种方法,但似乎没有一个有效,所以我会尝试更具体。
我有一个名为 LIBRARY.xlsm 的工作簿。
此工作簿包含两个工作表:CALCULATOR 和 CUTS。
工作表 CALCULATOR 包含两个表:INPUT 和 OUTPUT。
我将数据输入到 INPUT,计算值并自动输入到 OUTPUT。
我在 OUTPUT 下方创建了一个带有宏的按钮,用于将 OUTPUT 中的数据复制到工作表 CUTS。
我在 INPUT 中输入新数据,然后更新 OUTPUT。
现在我想将这个新数据复制到 CUTS,而不覆盖或删除以前的数据。
由于这个项目分为 5 个部分,我应该在工作表 CUTS 中得到五个表格,然后我可以打印出来。
INPUT 表包含单元格 A1:M31,这无关紧要(我没有复制这个)。
OUTPUT 表占用单元格 O6:S26。这是需要复制的数据。
放置到工作表 CUTS 可以从单元格 A1 开始(这意味着表格的范围为 A1:E20)。我想跳过一列,然后放置下一个数据集。因此,下一个数据集应该从 G1 (G1:K20) 开始,然后是 M1:Q20,依此类推)。也许只穿过三张桌子,然后开始下面的三张(按行分隔)。
这是尝试使用的代码。问题是,它不保留这些值,它会覆盖以前的数据。
Sub Create_CUTS ()
Dim sourceSheet As Worksheet
Dim sourceRange As Range
Dim sourceRows As Integer
Set sourceSheet = Worksheets("CALCULATOR")
sourceRows = WorksheetFunction.CountA(sourceSheet.Range("A:A"))
Set sourceRange = sourceSheet.Range("O6:S26" & sourceRows)
Dim targetSheet As Worksheet
Dim targetRange As Range
Dim targetRows As Integer
Set targetSheet = Worksheets("CUTS")
targetRows = WorksheetFunction.CountA(targetSheet.Range("A:A"))
Set targetRange = targetSheet.Range("A" & targetRows + 1 & ":A" & targetRows + 1 + sourceRows)
sourceRange.Copy Destination:=targetRange
End Sub
谢谢大家 -脾气暴躁
【问题讨论】:
标签: vba excel copy append excel-2013