Вставить диапазон непосредственно под данными в начальную ячейку c - PullRequest
0 голосов
/ 29 января 2020

Я хотел бы вставить данные, которые уже есть в столбце, начиная с указанной ячейки c, однако, поскольку в столбце уже есть данные, мне потребуется вставить данные, начиная с ячейки A7.

Есть предложения?

Dim copyNames1 As Range, pasteNames1 As Range

Set copyNames1 = Workbooks("2019 11 November.xls").Worksheets(3).Columns("F")
Set pasteNames1 = Workbooks("VBA Workbook.xlsm").Worksheets(1).Columns("A").Offset(7, 0)

copyNames1.Copy Destination:=pasteNames1

End Sub

Этот код не работает, так как возвращает ошибку и портит остальные данные, перемещая их.

РЕДАКТИРОВАТЬ: Вот еще одна альтернатива, которую я попробовал:

'   Activate cell directly below pasted data

Range("A1").End(xlDown).Offset(1, 0).Activate

' CR CARDS
'
'   NAMES

Dim copyNamess As Range, pasteNamess As Range

Set copyNamess = Workbooks("2019 11 November.xls").Worksheets(3).Columns("F")
Set pasteNamess = Workbooks("VBA Workbook.xlsm").Worksheets(1).ActiveCell

copyNames1.Copy Destination:=pasteNames1

End Sub

1 Ответ

0 голосов
/ 29 января 2020

Попробуйте это ... Я добавил переменные листа, использовал изменение размера и включил последнюю строку.

'Define your variables
Dim cpyws As Worksheet, pstws As Worksheet, copyNames1 As Range, pasteNames1 As Range

'Assign your worksheet variables
Set cpyws = Workbooks("2019 11 November.xls").Worksheets(3)
Set pstws = Workbooks("VBA Workbook.xlsm").Worksheets(1)

'Assign your copy/paste range variables
Set copyNames1 = cpyws.Cells(1, 6).Resize(cpyws.Cells(cpyws.Rows.Count, 6).End(xlUp).Row) 'I like to use resize and incorporate the last row
Set pasteNames1 = pstws.Cells(pstws.Rows.Count, "A").End(xlUp).Offset(1) 'Set start cell to paste your copied range to

    'Copy/Paste
    copyNames1.Copy Destination:=pasteNames1
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...