伦纳德(Leonard)正在编写一个宏,以将数据从一个工作表传输到另一个工作表。两个工作表都在同一个工作簿中。他要传输的数据在第一个工作表上,并使用一个命名范围:“ SourceData”。

它由一行数据组成。伦纳德(Leonard)希望在宏中将该数据从第一个工作表传输到第二个工作表的第一个空行,但是他不确定如何执行此操作。

实际上,有几种方法可以执行此操作,但是所有方法都具有两个先决条件:源范围的标识和目标范围的标识。源范围很容易,因为它已命名。您可以通过以下方式在宏中指定源范围:

Set rngSource = Worksheets("Sheet1").Range("SourceData")

弄清楚目标工作表中的第一个空白行比较棘手。这是一种相对简单的方法:

iRow = Worksheets("Sheet2").Cells(Rows.Count,1).End(xlUp).Row + 1 Set rngTarget = Worksheets("Sheet2").Range("A" & iRow)

完成后,无论第一个空行是什么,rngTarget变量都指向单元格A的范围。 (在这种情况下,空行定义为A列中没有内容的任何行。)

现在,您需要做的就是将这些源范围和目标范围与Copy方法一起使用:

Sub CopySource()

Dim rngSource As Range     Dim rngTarget As Range     Dim iRow As Integer

Set rngSource = Worksheets("Sheet1").Range("SourceData")

iRow = Worksheets("Sheet2").Cells(Rows.Count,1).End(xlUp).Row + 1     Set rngTarget = Worksheets("Sheet2").Range("A" & iRow)

rngSource.Copy Destination:=rngTarget End Sub

注意,在定义了范围的情况下,您要做的就是在源范围上使用Copy方法,并将目标范围指定为操作的目标。完成后,原始数据仍在源范围内,但已复制到目标中。

注意:

如果您想知道如何使用此页面(或_ExcelTips_网站上的任何其他页面)中描述的宏,我准备了一个特殊页面,其中包含有用的信息。

_ExcelTips_是您进行经济高效的Microsoft Excel培训的来源。

本技巧(6131)适用于Microsoft Excel 2007、2010、2013和2016。您可以在此处为Excel的较早菜单界面找到此技巧的版本:

链接:/ excel-Transferring_Data_between_Worksheets_Using_a_Macro [使用宏在工作表之间传输数据]。