![匹配/查找不同工作表中的行](https://linux22.com/image/1416671/%E5%8C%B9%E9%85%8D%2F%E6%9F%A5%E6%89%BE%E4%B8%8D%E5%90%8C%E5%B7%A5%E4%BD%9C%E8%A1%A8%E4%B8%AD%E7%9A%84%E8%A1%8C.png)
我有 2 张工作表,其中包含商家、金额、数据等列。两张工作表之间 100% 相同的是金额。我想匹配/找出工作表 1 + 工作表 2 中包含相同金额的行。其中一张工作表中的数据比另一张工作表中的数据多,因此例如,工作表 1 中的第 3 行与工作表 2 中的第 3 行不匹配。我必须以某种方式搜索金额。
答案1
这样应该可以,但是你的问题很不清楚:(
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
存在一些问题,例如,如果金额出现多次会发生什么情况,如果 Sheet1 数据的值比 Sheet2 多或少会发生什么情况,如何呈现信息等
无论如何,这个 VBa 应该可以让你开始,因为它可以进行调整
第 1 页
第 2 页
工作表 3(宏运行后创建)
答案2
=VLOOKUP(B1,Sheet1!$A$1:$B$28,2,0)
找到第一个实例。
=COUNTIF(Sheet1!$A:$A,Sheet2!B2)
判断是否存在多个实例。