Есть ли способ добавить строки, соответствующие количеству несовпадающих данных в столбце Excel? - PullRequest
0 голосов
/ 11 марта 2020

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

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

Что я пытаюсь сделать.
enter image description here

1 Ответ

0 голосов
/ 11 марта 2020

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

Option Explicit
Sub align()

    Dim wb As Workbook, ws As Worksheet
    Dim cell As Range
    Dim iLastRow As Long, iRowE As Long, iRowMatch As Long

    Set wb = ThisWorkbook
    Set ws = wb.Sheets("Sheet1")
    iLastRow = ws.Range("A" & Rows.Count).End(xlUp).Row

    iRowE = 3
    For Each cell In ws.Range("A3:A" & iLastRow)
        'Debug.Print cell.Address

        ' copy unchanged
        cell.Resize(1, 3).Copy cell.Offset(0, 10) ' ABC to KLM
        cell.Copy cell.Offset(0, 14) ' A to 0
        cell.Offset(0, 1).Resize(1, 2).Copy cell.Offset(0, 16) 'BC to QR

        If ws.Cells(iRowE, "E") = cell.Value Then
           iRowMatch = iRowE
           iRowE = iRowE + 1
        End If

        ' copy matched row
        If iRowMatch > 0 Then
           ws.Cells(iRowMatch, "F").Copy cell.Offset(0, 15) ' F to P
        Else
           MsgBox "No initial match for " & cell.Value, vbCritical
        End If
    Next
    MsgBox "Done"
End Sub

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...