Добрый день! Как сравнить две таблицы на совпадение данных в столбцах ФИО и если в 1й или 2й таблице не хватает ФИО, которая есть в другой таблице, вывести сообщение об этом?
Добрый день! Как сравнить две таблицы на совпадение данных в столбцах ФИО и если в 1й или 2й таблице не хватает ФИО, которая есть в другой таблице, вывести сообщение об этом?dmtgrs
Sub u_459() Application.ScreenUpdating = False aa = Application.CountA(Range("Вид1ТехникаКреативнаяПрическаМужскиеМастера33[ФИО]")) ba = Application.CountA(Range("Вид2ТехникаКлассическаяСтрижкаМужскиеМастера2334[ФИО]")) ab = Range("Вид1ТехникаКреативнаяПрическаМужскиеМастера33[ФИО]").Row bb = Range("Вид2ТехникаКлассическаяСтрижкаМужскиеМастера2334[ФИО]").Row ac = aa + ab - 1 bc = ba + bb - 1 ad = Range("Вид1ТехникаКреативнаяПрическаМужскиеМастера33[ФИО]").Address bd = Range("Вид2ТехникаКлассическаяСтрижкаМужскиеМастера2334[ФИО]").Address ae = InStrRev(ad, "$") be = InStrRev(bd, "$") af = Left(ad, ae) & ac bf = Left(bd, be) & bc ag = 0 ah = "" For Each ai In Range(af) aj = Application.Match(ai, Range(bf), 0) ak = Application.IsNumber(aj) If ak = False Then ag = ag + 1 ah = ah & Chr(10) & ai End If Next bg = 0 bh = "" For Each bi In Range(bf) bj = Application.Match(bi, Range(af), 0) bk = Application.IsNumber(bj) If bk = False Then bg = bg + 1 bh = bh & Chr(10) & bi End If Next Application.ScreenUpdating = True MsgBox "Итого строк, которые есть только в Таблице 1: " & ag & ah & _ Chr(10) & "Итого строк, которые есть только в Таблице 2: " & bg & bh End Sub
[/vba]
[vba]
Код
Sub u_459() Application.ScreenUpdating = False aa = Application.CountA(Range("Вид1ТехникаКреативнаяПрическаМужскиеМастера33[ФИО]")) ba = Application.CountA(Range("Вид2ТехникаКлассическаяСтрижкаМужскиеМастера2334[ФИО]")) ab = Range("Вид1ТехникаКреативнаяПрическаМужскиеМастера33[ФИО]").Row bb = Range("Вид2ТехникаКлассическаяСтрижкаМужскиеМастера2334[ФИО]").Row ac = aa + ab - 1 bc = ba + bb - 1 ad = Range("Вид1ТехникаКреативнаяПрическаМужскиеМастера33[ФИО]").Address bd = Range("Вид2ТехникаКлассическаяСтрижкаМужскиеМастера2334[ФИО]").Address ae = InStrRev(ad, "$") be = InStrRev(bd, "$") af = Left(ad, ae) & ac bf = Left(bd, be) & bc ag = 0 ah = "" For Each ai In Range(af) aj = Application.Match(ai, Range(bf), 0) ak = Application.IsNumber(aj) If ak = False Then ag = ag + 1 ah = ah & Chr(10) & ai End If Next bg = 0 bh = "" For Each bi In Range(bf) bj = Application.Match(bi, Range(af), 0) bk = Application.IsNumber(bj) If bk = False Then bg = bg + 1 bh = bh & Chr(10) & bi End If Next Application.ScreenUpdating = True MsgBox "Итого строк, которые есть только в Таблице 1: " & ag & ah & _ Chr(10) & "Итого строк, которые есть только в Таблице 2: " & bg & bh End Sub