2017-02-16 11 views
1

Итак, мне нужно скопировать ячейки A1, B2 и C3 из одной книги и добавить строку в другую рабочую книгу (в последней строке) со значениями тесов в столбцах A, B, C.Копирование ячеек при добавлении строки в другую книгу

Вот что я получил до сих пор, я думаю, что я близко, но я не могу закончить. я HAVO не знаю, что случилось с этим синтаксисом "Set lastrow = wNew.Cells. (Rows.Count, "A"). End (xlUp) .Row + 1", что seens будет проблемой

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 

Я также хотел бы закрыть Y: \ teste.xlsx рабочей книги, и появляется сообщение о том, «ROW ДОБАВЛЕНО»

ответ

0

вы делаете хорошую работу должным образом ссылки Workbooks и Worksheets, но и убедитесь, что вы полностью квалифицировать Cells и Rows. Это свойства объекта листа I.e. 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' из' Set lastrow = ... '. Это просто «Длинный», и его не нужно устанавливать (это зарезервировано для объектов) – CallumDA

+1

Thx много, я инженер-строитель, и я потратил почти 2,5 часа на это, у меня очень ограниченные знания в но я стараюсь очень усердно учиться от кодов других людей. –

Смежные вопросы