У меня есть следующая таблица на листе 1 из книги Excel. Мне нужна формула Excel, которая позволит мне автоматически добавить строку в аналогичную таблицу на листе-2, если я добавлю ее в основную таблицу на листе-1.

Пример: если я добавлю строку с именем "Джейн" на листе-1, она автоматически добавится в аналогичную таблицу на листе-2.

Name    Hours   Rate    Total
jhon    35  10  350
David   20  11  220
Mark    50  12  600
Hellen  40  11  440
Iren    40  13  520
Nicole  39  14  546

1 ответ1

0

Вот решение VBA.

1) Откройте редактор VBA (Alt+F11)

2) Дважды щелкните объект листа в окне Project Explorer слева (оно имеет древовидную структуру)

3) Вставьте этот код:

Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
    Dim cell As Range
    If TypeName(Target) = "Range" Then
        If LenB(Target.Cells(1, 1).Value) > 0 Then
            If Not Intersect(Target, Range("A:A")) Is Nothing Then
                If Target.SpecialCells(xlCellTypeLastCell).Row = UsedRange.Rows.Count Then
                    If UsedRange.Rows.Count > Sheet2.UsedRange.Rows.Count Then
                        For Each cell In Target.Cells
                            If Not Intersect(cell, Range("A:A")) Is Nothing Then Sheet2.Cells(Sheet2.UsedRange.Rows.Count + 1, 1).Value = cell.Value
                        Next
                    End If
                End If
            End If
        End If
    End If
    Set cell = Nothing
End Sub

4) Измените значения, как вам нужно. Наиболее важными из них являются следующие:
  4.1) Range("A:A") Измените его так, чтобы он находился там, где находится столбец « Name если его нет в столбце « A .
  4.2) Sheet2 Измените на кодовое имя VBA рабочего листа, куда вы хотите скопировать значения. Кодовое имя - это то, что отображается в этом дереве в левой части редактора VBA. По умолчанию это такие вещи, как Sheet1 , Sheet2 и т.д. (Это то же самое, что имя вкладки по умолчанию, но без пробела.)

Ключевой момент: это только добавляет строки. Он не удаляет их при удалении вещей на листе-1. Вы можете сделать это, но я стараюсь избегать удаления вещей в VBA, если я действительно не уверен, потому что вы не можете легко отменить эту операцию.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .