2017-02-16 2 views
1

したがって、あるブックからA1、B2、C3のセルをコピーし、列A、B、Cの論文値を持つ別のワークブック(最後の行)に行を追加する必要があります。別のブック内の行を追加するセルをコピーする

これまでのところ、私は近くにいると思いますが、私は終わりはできません。 私はこの構文を使用していただきました!間違ってない考えhavoない "LASTROW = wNew.Cellsセットを。(Rows.Count、 "A")。終了(xlUp).Row + 1" 問題

Sub Botão1_Clique() 

Dim wks As Worksheet 
Dim wNew As Worksheet 
Dim y As Workbook 
Dim lastrow As Long 

Application.ScreenUpdating = False 
Set wks = ActiveSheet 

Set y = Workbooks.Open("Y:\teste.xlsx") 

Set wNew = y.Sheets("GERAL") 

Set lastrow = wNew.Cells.(Rows.Count, "A").End(xlUp).Row + 1 


wks.Cells(1, 1).Copy 
wNew.Cells(lastrow, 1).PasteSpecial Paste:=xlPasteValues 
wks.Cells(2, 2).Copy 
wNew.Cells(lastrow, 2).PasteSpecial Paste:=xlPasteValues 
wks.Cells(3, 3).Copy 
wNew.Cells(lastrow, 3).PasteSpecial Paste:=xlPasteValues 



    Application.ScreenUpdating = True 


End Sub 

するseens私はまた、Yを閉鎖したいと思います:teste.xlsxワークブック\、そしてあなたが適切にWorkbooksWorksheetsを参照する良い仕事をするだけでなく、あなたが完全にCellsRowsを修飾することを確認してください

答えて

0

を「行が追加」というメッセージが表示されます。それらはワークシートオブジェクトのプロパティである。 ThisWorkbook.Worksheets("..").Rows

Sub Botão1_Clique() 
    Dim wks As Worksheet, wNew As Worksheet 
    Dim y As Workbook 
    Dim lastrow As Long 

    Application.ScreenUpdating = False 

    Set wks = ActiveSheet 
    Set y = Workbooks.Open("Y:\teste.xlsx") 
    Set wNew = y.Sheets("GERAL") 

    With wNew 
     lastrow = .Cells(.Rows.Count, "A").End(xlUp).Row + 1 
     .Cells(lastrow, 1).Value = wks.Cells(1, 1) 
     .Cells(lastrow, 2).Value = wks.Cells(2, 2) 
     .Cells(lastrow, 3).Value = wks.Cells(3, 3) 
    End With 

    'extra code as requested   
    y.Close True 'save changes if TRUE 
    MsgBox "ROW ADDED" 

    Application.ScreenUpdating = True 
End Sub 
+0

私は答えを更新しました "オブジェクトは必須です" エラー@CallumDA –

+0

。 'Set lastrow = ...'から 'Set'を削除してください。それはちょうど 'ロング'であり、設定する必要はありません(オブジェクトのために予約されています) – CallumDA

+1

Thx、私は土木エンジニアで、これをしようとするのにおよそ2,5時間を費やしました。プログラミングをしていますが、私は他の人々のコードから自分自身で非常に勉強しています。 –

関連する問題