2016-06-21 96 views
0

Before 將此視爲我的樣本數據。現在我想編寫一個VBA腳本,將這些數據的一部分複製到一個新的Excel表單中。使用VBA將數據從一張紙複製並粘貼到另一張紙上,並在數據頭和實際數據之間添加一個空行

after 這就是我想要的。可以看出,我想在標題和數據之間留下一行空白,並在這裏添加一些內容(Pius),但是當我嘗試這樣做時,我的數據被覆蓋。 我爲我的實際數據編寫的代碼如下所示。

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

這裏的標題是從行A8到O8,然後我想留一個空行。但我不知道如何添加這個,因爲我所有的數據都被粘貼在一起。那麼有沒有一種方法可以首先粘貼標題,然後在它們之間添加一個空白行,然後將我的數據粘貼到下面? 謝謝。

回答

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 
+0

感謝您的回答@Peter,但我期待自動執行此過程,而不僅僅是手動複製和粘貼標題和數據。那麼有沒有辦法讓這個過程自動化? – Karan

+0

我不確定您的意思是「完全自動化」。我給出的例子會自動確定您有多少列並自行調整。它還決定了有多少行數據。因此,您在原始文章中詢問的「複製粘貼」以自動示例回答。也許你錯過了另一部分你的問題,或者是一個單獨的問題?該示例不是手動複製粘貼。 – PeterT

相關問題