使用VBA将数据从一个工作表复制并粘贴到另一个工作表(包括标题),并在标题和实际数据之间添加一个空行

时间:2016-06-21 17:16:45

标签: excel vba excel-vba

Before 将此视为我的样本数据。现在我想写一个VBA脚本,将这部分数据复制到一个新的Excel工作表中。

after 这就是我要的。可以看出,我想在标题和数据之间留一行空白,并在此处添加一些内容(Pius),但是当我尝试这样做时,我的数据会被覆盖。 我为实际数据编写的代码如下所示。

Sheets("Industry Comparables (1 of 3)").Select
ActiveSheet.Range("A8").Select
ActiveSheet.Paste

这里的标题是从A8行到O8,然后我想留一个空白行。但我不知道如何添加这个,因为我的所有数据都被复制粘贴在一起。那么我有没有办法首先粘贴标题然后在其间添加一个空行然后我的数据粘贴在下面?  谢谢。

1 个答案:

答案 0 :(得分:0)

下面的示例基于您提供的示例数据 - 第1行包含您的标题。因此,您必须更改代码以匹配您要执行的操作。但这将说明如何做到这一点。

请注意,您无需使用Select工作表或范围来完成此工作。

Option Explicit

Sub test()
    Dim srcWS As Worksheet
    Dim dstWS As Worksheet
    Dim fromRange As Range
    Dim toRange As Range
    Dim lastCol As Long
    Dim lastRow As Long

    Set srcWS = ThisWorkbook.Sheets("Industry Comparables (1 of 3)")
    Set dstWS = ThisWorkbook.Sheets("DestinationWorksheetName")

    '--- copy header row
    lastCol = srcWS.Cells(1, srcWS.Columns.Count).End(xlToLeft).Column
    Set fromRange = srcWS.Range("A1").Resize(1, lastCol)
    Set toRange = dstWS.Range("A1").Resize(1, lastCol)
    toRange.Value = fromRange.Value

    '--- copy data area
    lastRow = srcWS.Cells(srcWS.Rows.Count, "A").End(xlUp).Row
    Set fromRange = srcWS.Range("A2").Resize(lastRow, lastCol)
    Set toRange = dstWS.Range("A3").Resize(lastRow, lastCol)
    toRange.Value = fromRange.Value
End Sub