Как скопировать определенное количество строк из одной сс в другую - PullRequest
0 голосов
/ 19 сентября 2019

У меня есть 2 основных сс accNo и output.Я пытаюсь скопировать x количество строк из AccNo для вывода.x является переменной и определяется пользователем, она вводится в ячейку B5 из другой ss, называемой «input».Есть ли способ для меня зациклить мой код, который будет копировать строку A1, A2, A3, A4 и т. Д. Из AccNo на вывод (начиная с A4 на выходе)?

Я пытаюсь это как макрос скнопки, и я могу сделать по одной за раз, это просто цикл, с которым я борюсь.Мне нужно, чтобы цикл x количество раз, например.если x = 5 я хочу скопировать более 5 строк данных из accNo для вывода.

Sub TradingAccount()

    Set accNo = ThisWorkbook.Worksheets("AccountNo")
    Set output = ThisWorkbook.Worksheets("Format")
    Set input = ThisWorkbook.Worksheets("input")

    i = 1
    e = 4

    Do loop x amount of times = True
        accNo.Range("A" & i).EntireRow.Copy
        output.Cells(e, 1).PasteSpecial xlPasteValues '(e,1) is A4?
        ActiveCell.Offset(1, 0).Select
        i = i + 1
        e = e + 1
    Loop

End Sub

макрос скопирует x количество строк из одной электронной таблицы в другую.

1 Ответ

0 голосов
/ 19 сентября 2019

Вам не нужно зацикливаться, если вы используете непрерывный диапазон.Кроме того, вы используете только значения, поэтому мы можем сделать это немного проще с .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.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...