Сравнить данные по нескольким столбцам одновременно - VBA
Формулировка задачи:
Всем привет, помогите подогнать на сравнение не только по столбцу "А",
а по "A:B"
следующий пример
сейчас он находит сроку по столбцу "А" лист1 , потом ищет ее на листе 4 в столбце "А" и выделяет если все верно. а у меня данные расположены на А и В...
Листинг программы
- Sub Main()
- Dim i As Long, x As Range, Fst As String
- Application.ScreenUpdating = False
- Workbooks("оплаты.xlsx").Sheets("Лист1").Activate
- With Workbooks("оплаты.xlsx").Sheets("Лист4")
- Columns("A:B").Interior.ColorIndex = xlNone
- .Columns("A:B").Interior.ColorIndex = xlNone
- For i = 1 To Cells(Rows.Count, "A").End(xlUp).Row
- Set x = .Columns("A:B").Find(what:=Cells(i, "A"), LookAt:=xlWhole)
- If Not x Is Nothing Then
- Cells(i, "A").Interior.ColorIndex = 6
- Fst = x.Address
- Do
- .Cells(x.Row, "A").Interior.ColorIndex = 6
- Set x = .Columns("A").FindNext(x)
- Loop While Fst <> x.Address
- End If
- Next
- End With
- End Sub
Решение задачи: «Сравнить данные по нескольким столбцам одновременно»
textual
Листинг программы
- Sub NewMain()
- Dim src As Worksheet, i As Long, j As Long, m As Long, n As Long
- Dim srcArr(), dstArr()
- Application.ScreenUpdating = False
- Set src = Workbooks("Книга1.xlsx").Worksheets("Лист4")
- With src
- m = .Cells(.Rows.Count, 1).End(xlUp).Row
- srcArr() = .Range(.Cells(1, 1), .Cells(m, 2)).Value
- .Range("A:B").Interior.ColorIndex = 6
- End With
- With Workbooks("Книга1.xlsx").Worksheets("Лист1")
- n = .Cells(.Rows.Count, 1).End(xlUp).Row
- dstArr() = .Range(.Cells(1, 1), .Cells(n, 2)).Value
- .Range("A:B").Interior.ColorIndex = 6
- i = 1
- Do While i <= n
- j = 1
- Do While j <= m
- If dstArr(i, 1) = srcArr(j, 1) Then
- If dstArr(i, 2) = srcArr(j, 2) Then
- .Range(.Cells(i, 1), .Cells(i, 2)).Interior.ColorIndex = xlNone
- src.Range(src.Cells(j, 1), src.Cells(j, 2)).Interior.ColorIndex = xlNone
- End If
- End If
- j = j + 1
- Loop
- i = i + 1
- Loop
- End With
- Set src = Nothing
- Application.ScreenUpdating = True
- End Sub
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д