Страницы: 1
RSS
Добавление строк в конце таблицы с комментарием VBA
 
Доброго времени, подскажите пожалуйста можно ли как то автоматически добавлять строки из одной таблицы (лист Старая) на лист (новая) по условию что их не было в листе новая - как должно быть привел на листе 1(новая)

Заранее благодарю
 
Формулой
Код
=СЧЁТЕСЛИМН(новая!$A:$A;$A:$A;новая!$B:$B;$B:$B;новая!$D:$D;$D:$D;новая!$E:$E;$E:$E;новая!$F:$F;$F:$F;новая!$G:$G;$G:$G)

Код
Макросом

Sub Сравнить()
    Dim y As Long
    Dim r As Range
    
    'Задаём ячейку на листе новая, в которую будем вносить.
    With Sheets("новая")
        Set r = .Cells(.Rows.Count, 1).End(xlUp).Cells(2, 1)
    End With
    
    With Sheets("старая") 'На листе старая
        y = .Cells(.Rows.Count, 1).End(xlUp).Row    'ищем номер последней строки
        If y < 3 Then Exit Sub  'Если строк мало, выходим из макроса
        With .Range(.Cells(1, "H"), .Cells(y, "H")) 'в столбец H
            .FormulaR1C1 = "=COUNTIFS(новая!C1,C1,новая!C2,C2,новая!C4,C4,новая!C5,C5,новая!C6,C6,новая!C7,C7)" 'вписываем формулу, считающую, сколько раз встречается строка
            .Calculate  'вычисляем внесённую формулу. На случай, если вычисления отключены.
            Dim arr As Variant
            arr = .Cells    'Результат запоминаем в массив
        End With
         
        Dim brr As Variant
        For y = 2 To UBound(arr, 1) 'Перебираем строки полученного массива
            If arr(y, 1) = 0 Then   'Если значение 0, если строки нет на листе новая
                brr = .Cells(y, 1).Resize(1, 7) 'Запоминаем первые 7 столбцов в массив
                r.Resize(UBound(brr, 1), UBound(brr, 2)) = brr  'В ячейку на листе новая вносим массив.
                r.Cells(1, UBound(brr, 2) + 1).Value = "Удалена"    'Справа дописываем новая.
 
                Set r = r.Cells(2, 1)   'Сдвигаем ячейку, в которую будем вставлять данные.
            End If
        Next
    End With
End Sub

Изменено: МатросНаЗебре - 20.09.2021 17:12:51 (Добавил комментарии)
 
МатросНаЗебре спасибо большое, но можете пожалуйста немного прокомментировать макрос чтобы можно было менять сцепку по которой сравниваются таблицы и столбец где нужно записать комментарий
Страницы: 1
Наверх