2016-01-05 461 views
0

我正在嘗試從一個工作表中複製並粘貼到使用VBA的新工作表中。但是我有以下變量複製並粘貼到新工作表中的最後一行

  • 包含正在複製的數據的工作表是動態的。列保持不變,但行數每週都在變化。
  • 數據將被添加到的新工作表是動態的。列是相同的,但新的工作表行每週增加(例如行700一週800行下一個)。
  • 正在複製和粘貼的列(A和BC)是一致的。
  • 的數據應該在A- BC列被粘貼在新的工作表

我目前管理的下一個可用行 拿出下面的代碼,但我一直得到錯誤的和不知道我在哪裏錯了,因爲我是VBA的新手。

Sub CandP() 
' 
' 

Dim Last_Row As Long 

Application.ScreenUpdating = False 

Last_Row = Range("A2:BC2" & Rows.Count).End(xlUp).Row 
Range("A2:BC2").Copy 
Windows("Newsheet.xlsm").Activate 
Range("$A2:BC$" & last_row).FillDown 

End Sub 

所有幫助表示讚賞,感謝您

+0

需要在其他工作簿引用其他表,所以它會像other_workbook.sheet1。範圍(「A2:BC」&last_row).value =範圍(「$ A2:BC $」&last_row).value或類似。在這裏做很多職位都在做同樣的事情,如果條件得到滿足。 –

回答

2

你可以試試這個:

Option Explicit 

    Sub CandP() 

    Dim Last_Row1 As Long, Last_Row2 As Long 
    Dim WB1 As Workbook, WB2 As Workbook 
    Dim ws1 As Worksheet, ws2 As Worksheet 

    Set WB1 = ThisWorkbook ' Workbook where you want to copy the data 
    Set ws1 = WB1.Sheets("Sheet1") ' Change the name of your Sheet 
    Set WB2 = Workbooks.Open("C:\Desktop\vba\Newsheet.xlsm") ' Enter the address of the Workbook you want to paste the data 
    Set ws2 = WB2.Sheets("Sheet1") ' Change the name of your Sheet 

    Last_Row1 = ws1.Range("A" & Rows.Count).End(xlUp).Row ' Determine the lastrow of the data to copy 
    Last_Row2 = ws2.Range("A" & Rows.Count).End(xlUp).Row + 1 ' Determine the next empty row in order to paste the data 

    ws1.Range("A2:BC" & Last_Row1).Copy ws2.Range("A" & Last_Row2) 

    End Sub 
相關問題