2015-11-16 2 views
2

У меня есть книга с двумя рабочими листами. лист 1 открыт, а лист 2 закрыт.Скопируйте выбранную пользователем строку в следующую пустую строку на новом листе

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

У меня есть VBA, который делает это, но я думаю, что его можно уменьшить, но не знаю, как это сделать.

Мой текущий код выглядит следующим образом. Дроу является вычисленным calue и работает отлично, IRow получается из окна сообщения и снова работает отлично

Worksheets("Closed").Cells(DRow, 2).Value = Worksheets("Open").Cells(iRow, 2).Value 
    Worksheets("Closed").Cells(DRow, 3).Value = Worksheets("Open").Cells(iRow, 3).Value 
    Worksheets("Closed").Cells(DRow, 4).Value = Worksheets("Open").Cells(iRow, 4).Value 
    Worksheets("Closed").Cells(DRow, 5).Value = Worksheets("Open").Cells(iRow, 5).Value 
    Worksheets("Closed").Cells(DRow, 6).Value = Worksheets("Open").Cells(iRow, 6).Value 
    Worksheets("Closed").Cells(DRow, 7).Value = Worksheets("Open").Cells(iRow, 7).Value 
    Worksheets("Closed").Cells(DRow, 8).Value = Worksheets("Open").Cells(iRow, 8).Value 
    Worksheets("Closed").Cells(DRow, 9).Value = Worksheets("Open").Cells(iRow, 9).Value 

Есть ли способ, чтобы уплотнить это в одну или две линии

ответ

4

Просто используйте .Resize:

Worksheets("Closed").Cells(DRow, 2).Resize(1,7).Value = _ 
    Worksheets("Open").Cells(iRow, 2).Resize(1,7).Value 
+0

большое спасибо. действительно помогли. что делает изменение размера? –

+2

@NeilCapper - см. [Свойство Range.Resize] (https://msdn.microsoft.com/en-us/library/office/aa176182%28v=office.11%29.aspx) – Jeeped

+0

@Jeeped: Thx для ссылки , Я не нашел времени, чтобы добавить его. @ NeilCapper: он изменит размер диапазона, с которым вы работаете, см. Ссылку для получения более подробной информации! ;) – R3uK

Смежные вопросы