Как заставить работать 2 несмежные колонки? - PullRequest
0 голосов
/ 09 октября 2018

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

Sub Compare()
Dim LastRow As Integer
LastRow = Worksheets("Sheet1").Range("A1048576").End(xlUp).Row 
For i=2 to LastRow
    If Range("A" & i).Value = Range("B" & i).Value Then
        Range("C" & i).Value = True
    Else
        Range("C" & i).Value = False
    End If
End Sub

Сейчас трудно жестко кодировать сравнение столбцов A и B, а затем выводить True / False в столбец C. Я хочу, чтобы пользователь выбрал только 2 столбца из своих.лист Excel, а затем запустите этот макрос, который затем сравнивает два выбранных столбца пользователем.Эти 2 столбца могут быть не смежными друг с другом, поэтому, например, пользователь может выбрать столбец A и столбец K, чтобы сравнить значения между ними.

1 Ответ

0 голосов
/ 09 октября 2018

Необходимо проверить свойство .Areas несмежных столбцов.

Sub CompareTwo()
    dim rng as range, i as long
    set rng = intersect(selection, selection.parent.usedrange)

    if rng.areas.count>1 then
        for i=1 to rng.areas(1).rows.count
            rng.areas(2).cells(i).offset(0, 1) = cbool(rng.areas(1).cells(i).value = rng.areas(2).cells(i).value)
        next i
    else
        for i=1 to rng.rows.count
            rng.cells(i).offset(0, 2) = cbool(rng.cells(i).value = rng.cells(i).value)
        next i
    end if
End Sub

Чтобы поместить результаты в новый столбец в конце листа Excel , используйте Найти сxlPrevious и xlByColumns для поиска последнего использованного столбца, а затем смещение 1.

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