Excel VBA или не VBA: как выполнить сопоставление между двумя листами с именами столбцов и строками в беспорядочном порядке? - PullRequest
0 голосов
/ 03 мая 2020

Я новичок в Excel и VBA. Я пытаюсь найти несоответствие между двумя листами (лист A и лист B) и выделить различия в листе A в случае несоответствия данных. Оба листа имеют данные от A1: Y300.

Проблема в том, что столбцы между двумя листами расположены не в одном порядке. Например, столбец «car» находится в C1 на листе A, в то время как столбец «car» находится в B1 на листе B.

И строки также не в том же порядке. Оба листа имеют идентификатор сотрудника в A1, и, например, идентификатор сотрудника 007 может быть строкой 2 на листе A, в то время как один и тот же идентификатор сотрудника находится в строке 3 на листе B.

Чтобы выполнить несоответствия, я подумал сначала проверяют имена столбцов между двумя листами , чтобы проверить, существуют ли столбцы на листе A на листе B, которые могут быть в другом порядке. После проверки начнется проверка несоответствий. Но не уверен, как выполнить эту функцию.

Если я применю условное форматирование, A1 <> SheetB! A1, и выделю несоответствия, сможет ли это корректно выполнять несоответствия, или мне сначала нужно отсортировать имена столбцов и имена строк по алфавиту? Что я должен сделать, чтобы правильно выделить несоответствия?

1 Ответ

0 голосов
/ 03 мая 2020

Обозначьте одну из ваших вкладок как «Лидер», а другую как «Последователь», не важно, какая именно. Теперь ... (схема c) ...

For Each Column In Leader.Columns
    Find the matching column in Follower
    For Row = 2 To Leader.Column.End.Row
        Find the Value of Cells(Row, Column) in Follower.Column
        If Find Is Nothing Then Mark Leder.Cells(Row, Column)
    Next Row
Next Column

В результате на вкладке «Лидер» будут отмечены все элементы, которые не были найдены в соответствующем столбце на вкладке «Подписчик». Все неотмеченные предметы были найдены. Чтобы пометить элементы в «Подписчике», которые недоступны в «Лидере», повторите процесс с переключением двух листов.

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