Нужна помощь при сравнении значений двух столбцов в разных книгах - PullRequest
0 голосов
/ 14 сентября 2018

Я пытаюсь сравнить два столбца в двух разных WB, скажем, A и B, которые имеют только столбец каждый.Я хотел бы выводить текстовый текст, когда значение ячейки в столбце A также находится в столбце B.

Мне удалось поместить значения в переменную варианта и, как сейчас, сравнить их.Я все еще получаю ошибку 424. В последнем операторе if проверяется соответствие.

Вот код:

Option Explicit

Sub uniformisation()

Dim range1 As Variant
Dim range2 As Variant

Dim Tab1 As Variant, tab2 As Variant 

Dim fichierM As Workbook 

Dim fichierF As Workbook 


Set fichierF = Workbooks.Open("thepath")
Set fichierMission = Workbooks.Open("thepath")

fichierF.Activate
fichierM.Activate

Dim wsF As Worksheet
Dim wsM As Worksheet

Set wsF = fichierF.Worksheets("test")
Set wsM = fichierM.Worksheets("A")

Dim C As range
Dim D As range


Set C = wsFlex.Columns(1)
Set D = wsMiss.Columns(1)


Dim TotalRows1 As Long
Dim TotalRows2 As Long



With wsF
    TotalRows1 = C.Rows(Rows.Count).End(xlUp).Row
    Tab1 = range(Cells(2, 1), Cells(TotalRows1, 1)).Value
    MsgBox UBound(Tab1)

End With


With wsM
    TotalRows2 = Rows(D.Rows.Count).End(xlUp).Row

    tab2 = range(Cells(2, 2=1), Cells(TotalRows2, 1))

    MsgBox UBound(tab2)

End With


For Each range1 In Tab1
For Each range2 In tab2


        If range1.Value = range2.Value Then
            MsgBox range1

            End If

        Next range2
        Next range1




fichierM.Close
fichierF.Close



End Sub

Любая помощь будет действительно признательна, спасибо!

1 Ответ

0 голосов
/ 14 сентября 2018

ваши определения повсюду, а код слишком длинный для того, что он должен делать.Кроме того, вы выбрали вариант, который на самом деле не нужен для того, что вы хотите сделать.Вот более короткая версия, с которой можно начать:

Sub CompareTwoColumns()
    Dim rng1 As Range
    Dim rng2 As Range
    Dim WB1 As Workbook
    Dim WB2 As Workbook

    'make sure both workbooks are open
    Set WB1 = Workbooks.Open("thepath1")
    Set WB2 = Workbooks.Open("thepath2")

    'loop through both columns and compare
    For Each rng1 In WB1.Worksheets("Sheet1").UsedRange.Columns(1).Cells
        For Each rng2 In WB2.Worksheets("Sheet1").UsedRange.Columns(1).Cells
            If rng1.Value = rng2.Value Then
                MsgBox rng1.Value
            End If
        Next rng2
    Next rng1
End Sub
...