скопируйте все строки, вставьте в другой лист чередующиеся строки с сохранением данных на листе назначения) - PullRequest
0 голосов
/ 31 мая 2018

Я хочу скопировать / вставить значения из ws1 в ws2

В частности, для копирования диапазона из 2 столбцов данных из рабочего листа № 1 в рабочий лист № 2 с вставкой в ​​чередующиеся ячейки в одном столбце.

Пример:

Worksheet 1 (from)
           Col AM   Col AN
Row 25     TEMP01   10001
Row 26     TEMP02   20002     
Worksheet 2 (to)
           Col A
Row 3      TEMP01
Row 4      10001
Row 5      TEMP02
Row 6      20002

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

«Переменная объекта или с переменной блока не установлена»

Ошибка.

Sub Alternate()
    Dim wsFrom As Worksheet
    Dim wsTo As Worksheet
    Dim LR As Long
    Dim i As Long
    Dim n As Long

    With wsFrom
        LR = wsFrom.Range("AM" & .Rows.count).End(xlUp).Row
        n = 3
        For i = 2 To LR
            wsFrom.Range("AM" & i).Copy
            wsTo.Range("A" & n).PasteSpecial xlPasteValues
            n = n + 2
        Next i
    End With
End Sub

1 Ответ

0 голосов
/ 31 мая 2018

Вам нужно что-то вроде:

    Set wsFrom = Sheets("WS1")
    Set wsTo = Sheets("WS2")

перед:

    With wsFrom

Для определения объектов рабочих листов.Вам также необходимо:

    wsFrom.Range("AN" & i).Copy
    wsTo.Range("A" & n + 1).PasteSpecial xlPasteValues

перед:

    n = n + 2

, чтобы скопировать в альтернативные значения.Наконец, цикл начинается со строки 2, а данные, которые вы указали для wsFrom, начинаются со строки 25.

...