【发布时间】:2015-08-24 13:46:15
【问题描述】:
我需要将“Chef”列的每个单元格与“nom”列的每个单元格进行比较,以便找到正确的“matricule”并将其存储在“matt”中, 我试过这个 VBA 代码:
Sub compare()
Dim p As Integer
Dim q As Integer
Dim Nom As String
Dim Nomchercher As String
Dim Matr As String
p = 0
q = 0
For j = 1 To 10
p = p + 1
Cells.Find("Chef").Select
ActiveCell.Range("a1").Offset(p, 0).Activate
ActiveCell.Select
AdresseTexte1 = ActiveCell.Address(0, 0)
Nomchercher = Range(AdresseTexte1)
For i = 1 To 10
q = q + 1
Cells.Find("Nom").Select
ActiveCell.Range("a1").Offset(q, 0).Activate
AdresseTexte2 = ActiveCell.Address(0, 0)
Nom = UCase(Range(AdresseTexte2))
Cells.Find("Matricule").Select
ActiveCell.Range("a1").Offset(q, 0).Activate
AdresseTexte3 = ActiveCell.Address(0, 0)
Matr = UCase(Range(AdresseTexte3))
Cells.Find("Matt").Select
ActiveCell.Range("a1").Offset(p, 0).Activate
Temps = InStr(1, UCase(Nom), UCase(Nomchercher), vbTextCompare)
If Temps <> 0 Then
ActiveCell.Value = Matr
End If
Next i
q = 0
Next j
End Sub
但它给了我这个结果:
我不知道为什么它显示“48”,有帮助吗?
【问题讨论】:
-
你看过
VLOOKUP吗?我怀疑你会得到48的空白条目,因为没有匹配项,48是你在循环中循环到的最后一个单元格......
标签: vba excel compare string-comparison