Связать переменные, представляющие строки, с несколькими полями ввода

У меня есть макрос с двумя полями ввода.

Я хочу сделать следующее:
Используя первое поле ввода, введите число.
Используя второе поле ввода, введите второе число.
Скопируйте строки, относящиеся к номерам строк.

Например, пользователь вводит число 1 в первое поле ввода и вводит число 2 во второе поле ввода. Я хотел бы скопировать строки 1 и 2 одновременно.
С моим текущим макросом скопирована строка 12.

Думаю, проблема в строке: Rows(Chosennumber & Chosennumber2).Copy

Sub selectlinefiletemplat()
    Dim Chosennumber As Integer
    Dim Chosennumber2 As Integer

    On Error GoTo NothingChosen

    Chosennumber = Application.InputBox( _
      prompt:="Type in a number", _
      Default:="Type your number here", _
      Type:=1)

    Chosennumber2 = Application.InputBox( _
      prompt:="Type in a number", _
      Default:="Type your number here", _
      Type:=1)

    Rows(Chosennumber & Chosennumber2).Copy

    Exit Sub

    NothingChosen:
        MsgBox "You didn't choose anything!"
End Sub

person Xavi    schedule 26.09.2019    source источник


Ответы (1)


Попробуйте с Application.Union:

Application.Union(Rows(Chosennumber), Rows(Chosennumber2)).Copy

Вы делаете это неправильно, потому что & объединяет строку, поэтому, когда вы вводите 1 и 2, объединение равно 12 :)

person Michał Turczyn    schedule 26.09.2019
comment
Но Chosennumber и Chosennumber2 не являются диапазонами, поэтому вам понадобится Union(Rows(Chosennumber), Rows(Chosennumber2)).Copy. Примечание для OP: вы должны указать лист, на котором вы хотите выполнить процедуру, например: Sheet1.Rows(Chosennumber) - person riskypenguin; 26.09.2019
comment
@ M.Schalk Вот что я имел в виду ... Спасибо !! - person Michał Turczyn; 26.09.2019
comment
Большое спасибо Michat Turczyn и M.Schalk, это правда, так как мои 2 поля ввода работают с числом, решение Union (Rows (Chosennumber), Rows (Chosennumber2)). Copy работает очень хорошо ... - person Xavi; 26.09.2019
comment
@Xavi Если ответ вам помог, вы должны принять его (зеленая галочка слева) и, возможно, проголосовать за :) - person Michał Turczyn; 26.09.2019