2016-07-21 5 views
0

Я использую приведенный ниже код для вставки данных с одного листа на другой. Однако таблица, похоже, отменена. Как я прочитал его снизу вверх, а не верхней нижнейExcel вставка данных с одного листа на другой в том же порядке

Код:

Sub InsertData() 
    Dim dc As Range 
    With Sheets("Open Tickets") 
     For Each dc In Intersect(.Range("J:J"), .UsedRange) 
      If dc.Value2 >= 14 Then 
       dc.Resize(1, 1).EntireRow.Copy 
       Sheets("Dashboard").Rows(6).Insert Shift:=xlDown 
      End If 
     Next 
    End With 
End Sub 
+0

Я думаю: Листы («Панель приборов»). Строки (6) .Insert Shift: = xlUp? –

+0

Не повезло, не работает .. – Arihant

+0

Зачем вам вставлять его в строку 6? Есть ли особые требования? – L42

ответ

1

Если вы всегда вставить до того строки 6, сдвигая строки 6 вниз, то первая вставка будет в 6-й строке, смещение старого содержимого строки 6 вниз. Вторая вставка также будет в ряду 6, сдвигая первую вставку вниз. Третья вставка также будет в строке 6, сдвигая вторую и первую вставку вниз и так далее.

У вас должен быть счетчик строк. Вроде так:

Sub InsertData() 
    Dim dc As Range 
    Dim lRow As Long 
    lRow = 6 
    With Sheets("Open Tickets") 
     For Each dc In Intersect(.Range("J:J"), .UsedRange) 
      If dc.Value2 >= 14 Then 
       dc.Resize(1, 1).EntireRow.Copy 
       Sheets("Dashboard").Rows(lRow).Insert Shift:=xlDown 
       lRow = lRow + 1 
      End If 
     Next 
    End With 
End Sub 
+0

Спасибо, это работает. Еще один вопрос, если я запускаю макрос каждый раз, когда он создает таблицу каждый раз. Можно ли удалить существующую таблицу, скопированную перед каждым запуском макроса – Arihant

+0

Вы имеете в виду удаление строк 6 до последней строки? «Листы» («Панель приборов»). Диапазон («6: 1048576»). Удалить « –

+0

Нет, только данные, которые копируются с другого листа .. – Arihant