Excel VBA Macro: диапазон копирования

Dim LastRow As Long
 LastRow = Sheets("Sheet1").Cells(Sheets("sheet1").Rows.Count, "A").End(xlUp).Row
 Sheets("Sheet1").Range("A" & LastRow + 1).FormulaR1C1 = "=WORKDAY(R[-1]C,1)"
 lastrow2 = Sheets("Sheet1").Cells(Sheets("sheet1").Rows.Count, "A").End(xlUp).Row

 'Copy cells
 Sheets("sheet1").Range(??????).Copy
 'Destination
 Sheets("Sheet1").Range("G" & lastrow2 - 3).PasteSpecial xlPasteValues
End Sub

Ребята, у меня проблема с копированием диапазона lastrow в lastrow 2. диапазон (lastrow -3 в столбце «G» до lastrow в столбце «O»). ожидаемый результат находится в диапазоне (lastrow2 -3 столбец "G" до lastrow2 в столбце "O"). для прочей информации диапазон заполнен не полностью. есть некоторое пустое место в диапазоне. Это означает диапазон, который я хочу скопировать. Но я не знаю, как мне установить диапазон. Пожалуйста помогите. У меня есть excel, но я не могу прикрепить изображение, потому что у меня еще нет репутации.

введите здесь описание изображения


person Gary James Sitanggang    schedule 08.05.2015    source источник


Ответы (1)


На картинке у вас обведена колонка F, но в вашем вопросе вы упоминаете G. Я пошел с G здесь. Я предполагаю, что значение последней строки верное, что не имеет смысла, учитывая ваше изображение, но это мое предположение. Также я предполагаю, что LastRow сообщает вам, какая строка является нижней строкой вашего диапазона копирования.

With Sheets("Sheet1")
    Dim rCopy As Range
    Set rCopy = .Range(.Cells(LastRow -2, "G"), .Cells(LastRow, "O"))
    rCopy.Select
    rCopy.Copy
 End With

Однако мне не ясно, что вы пытаетесь сделать, и я бы не стал использовать копирование и вставку, если это возможно.

Edit2: вам также, вероятно, придется изменить строку вставки, чтобы она использовала -2 вместо -3.

person mountainclimber11    schedule 08.05.2015