查找最后有额外零的数字

时间:2017-07-11 08:53:08

标签: excel vba excel-vba

我有三张纸,Sheet1,sheet2和sheet3。 Sheet3是我的结果表。

我在sheet3的E列中有ID,从sheet1的P列复制。我将sheet3的ID与sheet2的ID进行比较。我很成功。 但是,我在比较时遇到了问题。 ID通常为11到13位数。 Case1,在少数情况下我在表3中将id作为D2C12682300,在sheet2中与D2C1268230000具有相同的ID,在这种情况下,我希望它们匹配,但根据我的代码,它没有得到匹配。

Case2,在某些情况下,我在sheet3中的id为D2C12682300_id4576901,在sheet2中我的ID与D2C1268230000相同。我希望它们匹配,但我的代码不是这样的。

有人可以建议,我如何在我的代码中包含这些条件。我很震惊如何去做。

下面是代码,我用来查找从sheet3到sheet2的id。我想在这段代码中包含这些案例。

Sub lookup()
Dim lLastRow As Long
Dim rng As Range
Dim i As Long

'Copy lookup values from sheet1 to sheet3
ThisWorkbook.Sheets("S").Select
lLastRow = ActiveSheet.Cells(ActiveSheet.Rows.Count, 1).End(xlUp).Row
Range("P5:P" & lLastRow).Copy Destination:=Sheets("Result").Range("E5")
Range("G5:G" & lLastRow).Copy Destination:=Sheets("Result").Range("H5")
'Go to the destination sheet
Sheets("Result_").Select
For i = 5 To lLastRow
'Search for the value on sheet2
Set rng = Sheets("P").UsedRange.Find(Cells(i, 5).Value)
'If it is found put its value on the destination sheet
If Not rng Is Nothing Then
Cells(i, 6).Value = rng.Value
Cells(i, 1).Value = rng.Offset(0, 1).Value
Cells(i, 2).Value = rng.Offset(0, 2).Value
Cells(i, 3).Value = rng.Offset(0, 3).Value
Cells(i, 4).Value = rng.Offset(0, 9).Value
Cells(i, 9).Value = rng.Offset(0, 10).Value
Cells(i, 12).Value = rng.Offset(0, 6).Value
Cells(i, 13).Value = rng.Offset(0, 5).Value
Cells(i, 14).Value = rng.Offset(0, 8).Value
End If
Next i
End Sub

1 个答案:

答案 0 :(得分:0)

使用通配符:

Set rng = Sheets("P").UsedRange.Find(Cells(i, 5).Value & "*", LookAt:=xlWhole)

同时避免使用.Select并客观化.Range, .Cells etc.阅读How to Avoid Select