vba – 比较不同单元格中的值

我有一个表中的两个单元格 – 让我们称之为数据表。 我有另一张表 – 让我们称之为search表。 我想比较数据中的两个单元格,我有一个search信息。

如果:(数据中的单元格A.value在SEARCH中的列X中)和(在SEARCH中,列Y中的数据中的单元格B.value) – 都在SEARCH中的同一行 – 然后给我这个第一个值在表单SEARCH中排。

用VBA有可能吗?

谢谢

希望你在找这个..

Sub comp_value_in_diff_cells() On Error Resume Next lastrowA = Worksheets("DATA").Range("A" & Rows.Count).End(xlUp).Row lastrowB = Worksheets("DATA").Range("B" & Rows.Count).End(xlUp).Row If lastrowA = lastrowB Then For i = 1 To lastrowA search1 = Worksheets("DATA").Range("A" & i).Value search2 = Worksheets("DATA").Range("B" & i).Value With Worksheets("SEARCH") For j = 1 To (.UsedRange.Cells(1, 1).Row + .UsedRange.Rows.Count) a = .Range(j & ":" & j).Find(search1).Row avalue = .Range(j & ":" & j).Find(search1).Column b = .Range(j & ":" & j).Find(search2).Row bvalue = .Range(j & ":" & j).Find(search2).Column If a = b Then If avalue < bvalue Then If Worksheets("DATA").Range("C" & i).Value <> "" Then Worksheets("DATA").Range("C" & i).Value = Worksheets("DATA").Range("C" & i).Value & "|" & search1 Else Worksheets("DATA").Range("C" & i).Value = search1 End If Else If Worksheets("DATA").Range("C" & i).Value <> "" Then Worksheets("DATA").Range("C" & i).Value = Worksheets("DATA").Range("C" & i).Value & "|" & search2 Else Worksheets("DATA").Range("C" & i).Value = search2 End If End If End If Next j End With Next i Else Msgbox ("DATA Sheet A & B Mismatch") End If End Sub 

是的,这是可能的:)你有3种方式:

1.循环(例子For)

 Function FindPair(ByRef CellA As Range, ByRef CellB As Range) As Variant ' <- Change Variant for specific Type of data 'Set default value if not found match Set FindPair = Nothing Dim sheetToSearch As Worksheet Dim lastRow As Long 'Check input If CellA Is Nothing Or CellB Is Nothing Then Call MsgBox("Something is wrong!", vbExclamation) Exit Function Exit Function 'For easy ro read Set sheetToSearch = Sheets("Search") lastRow = (sheetToSearch.UsedRange.Cells(1, 1).Row + sheetToSearch.UsedRange.Rows.Count) 'First row of UsedRange + rows count 'Look up For r = 0 To lastRow 'Change column here, if you need If sheetToSearch.Range("A" + r).Value = CellA.Value Then If sheetToSearch.Range("B" + r).Value = CellB.Value Then 'Return data FindPair = sheetToSearch.Range("A" + r).Value Exit For End If End If Next r 'You can compare *.Value = *.Value - for compare binary data 'or *.Text = *.Text - for compare value like as text with formatting End Function 

2.find

Application.WorksheetFunction.Find()

请查找它的工作原理: VBA查找

3.查找

Application.WorksheetFunction.VLookup()

请查找文档如何工作: Excel VLookup