У меня есть 2 листа с такими столбцами, как «продавец», «количество», «данные» и т.д. То, что на 100% одинаково для двух листов - это сумма. Я хочу сопоставить / выяснить строки из листа 1 + лист 2, которые содержат одинаковое количество. На одном из листов у меня больше данных, чем на другом, поэтому, например, 3-я строка на листе 1 не совпадает с 3-й строкой на листе 2. Как-то я должен искать после суммы.
2 ответа
0
Это должно сделать, но ваш вопрос очень неясен :(
Sub FindTheThings()
Dim resultRow As Integer
resultRow = 2
Dim currentRow As Integer
currentRow = 2
Worksheets("Sheet3").Range("A1").Value = "Sheet1 row"
Worksheets("Sheet3").Range("B1").Value = "Sheet2 row"
Do While (Worksheets("Sheet1").Range("B" & currentRow).Value <> "")
Dim amount As String
amount = Worksheets("Sheet1").Range("B" & currentRow).Value
Dim currentRowSheet2 As String
currentRowSheet2 = 2
Do While (Worksheets("Sheet2").Range("B" & currentRowSheet2).Value <> "")
Dim sheet2amount As String
sheet2amount = Worksheets("Sheet2").Range("B" & currentRowSheet2).Value
If (sheet2amount = amount) Then
Worksheets("Sheet3").Range("A" & resultRow).Value = currentRow
Worksheets("Sheet3").Range("B" & resultRow).Value = currentRowSheet2
resultRow = resultRow + 1
Exit Do
End If
currentRowSheet2 = currentRowSheet2 + 1
Loop
currentRow = currentRow + 1
Loop
End Sub
Существуют сбои, например, что происходит, если существует несколько вхождений суммы, что происходит, если данные листа1 имеют больше или меньше значений, чем лист2, как должна быть представлена информация и т.д.
Независимо от этого VBa должен заставить вас работать, как это можно настроить
Лист 1
Лист 2
Лист 3 (создан после запуска макроса)
-1
=VLOOKUP(B1,Sheet1!$A$1:$B$28,2,0)
находит первый экземпляр.
=COUNTIF(Sheet1!$A:$A,Sheet2!B2)
говорит, если есть больше, чем в случае.