Скопируйте все строки, вставьте в другой лист чередующиеся строки с сохранением данных на листе назначения)
Я ищу, чтобы скопировать / вставить значения из 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 ответ
Решение
Вам нужно что-то вроде:
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.