Вы используете массив на основе копирования данных, нет необходимости использовать paste
, так как вы ничего не копируете в буфер обмена.Просто удалите эту строку или сделайте ее комментарием, добавив '
или REM
к первой строке, точно так же, как вы делали для строки wholerow.copy ;-).
For i = 2 To last_row
If data_source.Worksheets(3).Cells(i, 1) = wo_num Then
'data_source.Worksheets(3).Rows(i).EntireRow.Copy
destination.Worksheets(1).Rows(j).Value = data_source.Worksheets(3).Rows(i).Value
' destination.Worksheets(1).Paste !! run your code without this line and see what is happening.
j = j + 1
End If
Next i
Надеюсь, это решит вашу проблему.В противном случае нам нужно знать, когда что-то копируется в буфер обмена.Другим комментарием может быть не передача всей строки, если вы действительно не имеете значения во всех 16384 столбцах листа.Используйте cells(i,1).resize(,numberof columns)
, чтобы сделать ваш код более гибким.
destination.Worksheets(1).cells(j,1).resize(,NumberofColumns).Value = data_source.Worksheets(3).cells(i,1).resize(,NumberofColumns).Value
хорошая работа в любом случае,
С уважением,
M