Вам не нужно зацикливаться, если вы используете непрерывный диапазон.Кроме того, вы используете только значения, поэтому мы можем сделать это немного проще с .value = .value
, таким образом:
dim cnt as long, lrd as long, src as worksheet, dst as worksheet
cnt = sheets("input").cells(5,2).value 'count of rows from B5 on input
set src = sheets("AccNo") 'source sheet
set dst = sheets("output") 'destination sheet
With dst
lrd = .cells(.rows.count,1).end(xlup).row 'lastrow of destination
.range(.rows(lrd+1),.rows(lrd+1+cnt-1)).value = src.range(src.rows(1),src.rows(cnt)).value 'FIXED "-1" IN SRC FINAL ROW; SEE COMMENTS
end with
Непроверенный код, но он должен дать общее представление.Обратите внимание, что используется cnt-1
, так как у вас есть начальная строка (1), и вам нужно всего 5 строк (1, 2, 3, 4, 5), но добавление cnt
к начальной строке приведет вас к строке 6.