2017-06-06 98 views
0

我想粘貼不同工作表的最後一行的信息。我已經複製了這個信息,這個宏只是爲了粘貼它。用我現在的代碼,我得到一個錯誤,說「粘貼方法的工作表類失敗」我該如何解決這個問題?最後一行粘貼到不同的工作表VBA

這裏是代碼:

Windows("m.xlsx").Activate 
Cells(Application.Rows.Count, 1).End(xlUp).Offset(1, 0).Select 
ActiveSheet.Paste 
Range("D45").Select 
Windows("d.xlsx").Activate 
+0

嘗試完全限定您的「單元」對象,但您缺少「工作表」對象。例如'Workbooks(「m.xlsx」)。Worksheets(「SheetName」)。Cells(...)。複製' –

回答

0

Excel中是衆所周知的清除剪貼板,因此你應該把拷貝命令一行粘貼之前。

所以你的情況,copy命令也走之前

ActiveSheet.Paste 

也請避免使用.Select/Activate。請閱讀How to avoid using Select in Excel VBA macros

這是你正在嘗試(未經測試)?

Sub Sample() 
    Dim thisWb As Workbook, thatWb As Workbook 
    Dim lRow As Long 

    Set thisWb = Workbooks("d.xlsx") 
    Set thatWb = Workbooks("m.xlsx") 

    '~~> Change Sheet1 to the relevant sheet 
    With thatWb.Sheets("Sheet1") 
     '~~> Find last Row to paste 
     lRow = .Range("A" & .Rows.Count).End(xlUp).Row + 1 

     '~~> Change Sheet1 to the relevant sheet 
     '~~> Replace A1:A10 with the relevant range that you are trying to copy 
     thisWb.Sheets("Sheet1").Range("A1:A10").Copy .Range("A" & lRow) 
    End With 
End Sub 
+0

感謝您的迴應,我正在嘗試做的是類似的,但因爲我對VBA沒有經驗,我將這個宏與前一個宏相結合,最後複製一組過濾的數據。我的最終目標是從「d」複製到「m」的最後一行 – acabr136

+0

從「D」複製什麼? –

+0

一些過濾的數據,代碼如下所示: 'ActiveSheet.Range(「$ J $ 12:$ O $ 64」)。AutoFilter Field:= 4,Criteria1:=「No」 ActiveWindow.SmallScroll Down: = -21 行( 「16:16」)。選擇 範圍(選擇,Selection.End(xlDown))。選擇 Selection.Copy' – acabr136

相關問題